{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "307c15c3-a56b-4320-ae94-34cc3e536621",
   "metadata": {},
   "source": [
    "# 1 特征加工"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "73c82753-f8b5-46d6-907d-80ad9aed655a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:04:10.754917Z",
     "iopub.status.busy": "2024-11-13T07:04:10.754522Z",
     "iopub.status.idle": "2024-11-13T07:04:11.234596Z",
     "msg_id": "59fb9f71-5f33-4edf-a518-977a77e40f42",
     "shell.execute_reply": "2024-11-13T07:04:11.233868Z",
     "shell.execute_reply.started": "2024-11-13T07:04:10.754884Z"
    }
   },
   "outputs": [],
   "source": [
    "import gc\n",
    "import os\n",
    "import pickle\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from tqdm import tqdm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "6035e1cc-dab6-4c1d-a703-3b880d8fe9e2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:04:11.236593Z",
     "iopub.status.busy": "2024-11-13T07:04:11.236017Z",
     "iopub.status.idle": "2024-11-13T07:05:18.323763Z",
     "msg_id": "2d6bfd33-4123-43ff-8d20-aa2017a8bebf",
     "shell.execute_reply": "2024-11-13T07:05:18.323011Z",
     "shell.execute_reply.started": "2024-11-13T07:04:11.236565Z"
    }
   },
   "outputs": [],
   "source": [
    "# 1 读取数据集\n",
    "# 1.1 训练集\n",
    "nature_train             = pd.read_csv('../contest/train/GTGSH_NATURE_TRAIN.csv')\n",
    "asset_train              = pd.read_csv('../contest/train/GTGSH_ASSET_TRAIN.csv')\n",
    "prod_hold_train          = pd.read_csv('../contest/train/GTGSH_PROD_HOLD_TRAIN.csv')\n",
    "tr_ibtf_train            = pd.read_csv('../contest/train/GTGSH_TR_IBTF_TRAIN.csv')\n",
    "tr_tpay_train            = pd.read_csv('../contest/train/GTGSH_TR_TPAY_TRAIN.csv')\n",
    "mb_pageview_dtl_train    = pd.read_csv('../contest/train/GTGSH_MB_PAGEVIEW_DTL_TRAIN.csv')\n",
    "tr_aps_dtl_train         = pd.read_csv('../contest/train/GTGSH_TR_APS_DTL_TRAIN.csv')\n",
    "merch_tr_dtl_train       = pd.read_csv('../contest/train/GTGSH_MERCH_TR_DTL_TRAIN.csv')\n",
    "entinfo_basic_info_train = pd.read_csv('../contest/train/GTGSH_ENTINFO_BASIC_INFO_TRAIN.csv')\n",
    "target_train             = pd.read_csv('../contest/train/GTGSH_TARGET_TRAIN.csv')\n",
    "\n",
    "# 1.1.1 重命名（aps,ibtf无需重命名）\n",
    "nature_train.columns = [('_').join(['nature', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in nature_train.columns]\n",
    "asset_train.columns = [('_').join(['asset', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in asset_train.columns]\n",
    "prod_hold_train.columns = [('_').join(['prod_hold', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in prod_hold_train.columns]\n",
    "mb_pageview_dtl_train.columns = [('_').join(['mb_pageview_dtl', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in mb_pageview_dtl_train.columns]\n",
    "merch_tr_dtl_train.columns = [('_').join(['merch_tr_dtl', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in merch_tr_dtl_train.columns]\n",
    "entinfo_basic_info_train.columns = [('_').join(['entinfo_basic_info', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in entinfo_basic_info_train.columns]\n",
    "\n",
    "# 1.2 测试集\n",
    "nature_test_a = pd.read_csv('../contest/A/GTGSH_NATURE_A.csv')\n",
    "asset_test_a = pd.read_csv('../contest/A/GTGSH_ASSET_A.csv')\n",
    "prod_hold_test_a = pd.read_csv('../contest/A/GTGSH_PROD_HOLD_A.csv')\n",
    "tr_ibtf_test_a = pd.read_csv('../contest/A/GTGSH_TR_IBTF_A.csv')\n",
    "tr_tpay_test_a = pd.read_csv('../contest/A/GTGSH_TR_TPAY_A.csv')\n",
    "mb_pageview_dtl_test_a = pd.read_csv('../contest/A/GTGSH_MB_PAGEVIEW_DTL_A.csv')\n",
    "tr_aps_dtl_test_a = pd.read_csv('../contest/A/GTGSH_TR_APS_DTL_A.csv')\n",
    "merch_tr_dtl_test_a = pd.read_csv('../contest/A/GTGSH_MERCH_TR_DTL_A.csv')\n",
    "entinfo_basic_info_test_a = pd.read_csv('../contest/A/GTGSH_ENTINFO_BASIC_INFO_A.csv')\n",
    "target_test_a = pd.read_csv('../contest/A/GTGSH_TARGET_A.csv')\n",
    "\n",
    "# 1.2.1 重命名\n",
    "nature_test_a.columns = [('_').join(['nature', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in nature_test_a.columns]\n",
    "asset_test_a.columns = [('_').join(['asset', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in asset_test_a.columns]\n",
    "prod_hold_test_a.columns = [('_').join(['prod_hold', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in prod_hold_test_a.columns]\n",
    "mb_pageview_dtl_test_a.columns = [('_').join(['mb_pageview_dtl', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in mb_pageview_dtl_test_a.columns]\n",
    "merch_tr_dtl_test_a.columns = [('_').join(['merch_tr_dtl', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in merch_tr_dtl_test_a.columns]\n",
    "entinfo_basic_info_test_a.columns = [('_').join(['entinfo_basic_info', col]) if col not in ['CUST_NO', 'FLAG'] else col for col in entinfo_basic_info_test_a.columns]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "555f9810-b448-443c-8147-f257f88ff8f5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:05:18.325394Z",
     "iopub.status.busy": "2024-11-13T07:05:18.324951Z",
     "iopub.status.idle": "2024-11-13T07:05:18.816637Z",
     "msg_id": "713a1980-2a3e-4564-8d46-6e98b64bbeb9",
     "shell.execute_reply": "2024-11-13T07:05:18.815947Z",
     "shell.execute_reply.started": "2024-11-13T07:05:18.325366Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 2/2 [00:00<00:00, 13.36it/s, nature]\n",
      "100%|██████████| 2/2 [00:00<00:00, 20.34it/s, asset]\n",
      "100%|██████████| 2/2 [00:00<00:00, 19.82it/s, ibtf]\n",
      "100%|██████████| 2/2 [00:00<00:00, 20.27it/s, tpay]\n"
     ]
    }
   ],
   "source": [
    "# 2 静态表特征加工\n",
    "# 2.1 自然属性信息表（GTGSH_NATURE）\n",
    "def sex_binning(x):\n",
    "    if x == 'A':\n",
    "        return 1\n",
    "    elif x == 'B':\n",
    "        return 2\n",
    "    else:\n",
    "        return np.nan\n",
    "\n",
    "def rank_binning(x):\n",
    "    if x == 'A':\n",
    "        return 1\n",
    "    elif x == 'B':\n",
    "        return 2\n",
    "    elif x == 'C':\n",
    "        return 3\n",
    "    elif x == 'D':\n",
    "        return 4\n",
    "    elif x == 'E':\n",
    "        return 5\n",
    "    elif x == 'F':\n",
    "        return 6\n",
    "\n",
    "for df in tqdm([nature_train, nature_test_a], postfix='nature'):\n",
    "    df['nature_NTRL_CUST_SEX_CD'] = df['nature_NTRL_CUST_SEX_CD'].apply(lambda x: sex_binning(x))\n",
    "    df['nature_NTRL_RANK_CD'] = df['nature_NTRL_RANK_CD'].apply(lambda x: rank_binning(x))\n",
    "    \n",
    "    del df\n",
    "    gc.collect()\n",
    "\n",
    "# 2.2 资产信息表（GTGSH_ASSET）\n",
    "for df in tqdm([asset_train, asset_test_a], postfix='asset'):\n",
    "    # 金融资产 存款+贷款/2\n",
    "    df['asset2_AST_DAY_FA_BAL']=df['asset_AST_DP_BAL']+df['asset_AST_YAVER_DP_BAL']*0.5  # 年日均活期存款余额/年日均存款余额\n",
    "    df['asset2_AST_MAVER_FA_BAL']=df['asset_AST_MAVER_DP_BAL']+df['asset_AST_YAVER_DP_BAL']*0.5  # 年日均活期存款余额/年日均存款余额\n",
    "    df['asset2_AST_SAVER_FA_BAL']=df['asset_AST_SAVER_DP_BAL']+df['asset_AST_YAVER_DP_BAL']*0.5  # 年日均活期存款余额/年日均存款余额\n",
    "    df['asset2_AST_YAVER_FA_BAL']=df['asset_AST_YAVER_DP_BAL']+df['asset_AST_YAVER_DP_BAL']*0.5  # 年日均活期存款余额/年日均存款余额\n",
    "\n",
    "    # AUM 金融资产\n",
    "    df['asset2_DAY_AUM_div_FA']=df['asset_AST_DAY_AUM_BAL']/df['asset2_AST_DAY_FA_BAL']  # 当日AUM余额/当日金融资产余额\n",
    "    df['asset2_MAVER_AUM_div_FA']=df['asset_AST_MAVER_AUM_BAL']/df['asset2_AST_MAVER_FA_BAL']  # 月日均AUM余额/月日均金融资产余额\n",
    "    df['asset2_SAVER_AUM_div_FA']=df['asset_AST_SAVER_AUM_BAL']/df['asset2_AST_SAVER_FA_BAL']  # 季日均AUM余额/季日均金融资产余额\n",
    "    df['asset2_YAVER_AUM_div_FA']=df['asset_AST_YAVER_AUM_BAL']/df['asset2_AST_YAVER_FA_BAL']  # 年日均AUM余额/年日均金融资产余额\n",
    "    \n",
    "    # 存款 AUM\n",
    "    df['asset2_DAY_DP_div_AUM']=df['asset_AST_DP_BAL']/df['asset_AST_DAY_AUM_BAL']  # 存款余额/当日AUM余额\n",
    "    df['asset2_MAVER_DP_div_AUM']=df['asset_AST_MAVER_DP_BAL']/df['asset_AST_MAVER_AUM_BAL']  # 月日均存款余额/月日均AUM余额\n",
    "    df['asset2_SAVER_DP_div_AUM']=df['asset_AST_SAVER_DP_BAL']/df['asset_AST_SAVER_AUM_BAL']  # 季日均存款余额/季日均AUM余额\n",
    "    df['asset2_YAVER_DP_div_AUM']=df['asset_AST_YAVER_DP_BAL']/df['asset_AST_YAVER_AUM_BAL']  # 年日均存款余额/年日均AUM余额\n",
    "    df['asset2_DAY_DPSA_div_AUM']=df['asset_AST_DPSA_BAL']/df['asset_AST_DAY_AUM_BAL']  # 活期存款余额/当日AUM余额\n",
    "    df['asset2_MAVER_DPSA_div_AUM']=df['asset_AST_MAVER_DPSA_BAL']/df['asset_AST_MAVER_AUM_BAL']\n",
    "    df['asset2_SAVER_DPSA_div_AUM']=df['asset_AST_SAVER_DPSA_BAL']/df['asset_AST_SAVER_AUM_BAL']\n",
    "    df['asset2_YAVER_DPSA_div_AUM']=df['asset_AST_YAVER_DPSA_BAL']/df['asset_AST_YAVER_AUM_BAL']\n",
    "    \n",
    "    # 定期存款\n",
    "    df['asset2_AST_TD_BAL']=df['asset_AST_DP_BAL']-df['asset_AST_DPSA_BAL']  # 定期存款余额\n",
    "    df['asset2_DAY_TD_div_DPSA']=df['asset2_AST_TD_BAL']/df['asset_AST_DP_BAL']  # 定期存款余额/存款余额\n",
    "    df['asset2_AST_MAVER_TD_BAL']=df['asset_AST_MAVER_DP_BAL']-df['asset_AST_MAVER_DPSA_BAL']  # 月日均定期存款余额\n",
    "    df['asset2_AST_SAVER_TD_BAL']=df['asset_AST_SAVER_DP_BAL']-df['asset_AST_SAVER_DPSA_BAL']  # 季日均定期存款余额\n",
    "    df['asset2_AST_YAVER_TD_BAL']=df['asset_AST_YAVER_DP_BAL']-df['asset_AST_YAVER_DPSA_BAL']  # 年日均定期存款余额\n",
    "    df['asset2_DAY_TD_div_AUM']=df['asset2_AST_TD_BAL']/df['asset_AST_DAY_AUM_BAL']  # 定期存款余额/当日AUM余额\n",
    "    df['asset2_DPSA_div_DP']=df['asset_AST_DPSA_BAL']/df['asset_AST_DP_BAL']  # 活期存款余额/存款余额\n",
    "    df['asset2_YAVER_DPSA_div_DP']=df['asset_AST_YAVER_DPSA_BAL']/df['asset_AST_YAVER_DP_BAL']  # 年日均活期存款余额/年日均存款余额\n",
    "\n",
    "    # 存贷比 定期存款/贷款\n",
    "    df['asset2_DAY_DPSA_div_LOAN']=df['asset_AST_DPSA_BAL']/df['asset_DEBT_LOAN_BAL']  # 活期存款余额/贷款余额\n",
    "    df['asset2_MAVER_DPSA_div_LOAN']=df['asset_AST_MAVER_DPSA_BAL']/df['asset_DEBT_LOAN_BAL_MAVER']  # 月日均活期存款余额/月日均贷款余额\n",
    "    df['asset2_SAVER_DPSA_div_LOAN']=df['asset_AST_SAVER_DPSA_BAL']/df['asset_DEBT_LOAN_BAL_SAVER']  # 季日均活期存款余额/季日均贷款余额\n",
    "    df['asset2_YAVER_DPSA_div_LOAN']=df['asset_AST_YAVER_DPSA_BAL']/df['asset_DEBT_LOAN_BAL_YAVER']  # 年日均活期存款余额/年日均贷款余额\n",
    "    df['asset2_DAY_DP_div_LOAN']=df['asset_AST_DP_BAL']/df['asset_DEBT_LOAN_BAL']  # 存款余额/贷款余额\n",
    "    df['asset2_MAVER_DP_div_LOAN']=df['asset_AST_MAVER_DP_BAL']/df['asset_DEBT_LOAN_BAL_MAVER']  # 月日均存款余额/月日均贷款余额\n",
    "    df['asset2_SAVER_DP_div_LOAN']=df['asset_AST_SAVER_DP_BAL']/df['asset_DEBT_LOAN_BAL_SAVER']  # 季日均存款余额/季日均贷款余额\n",
    "    df['asset2_YAVER_DP_div_LOAN']=df['asset_AST_YAVER_DP_BAL']/df['asset_DEBT_LOAN_BAL_YAVER']  # 年日均存款余额/年日均贷款余额\n",
    "\n",
    "    del df \n",
    "    gc.collect()\n",
    "\n",
    "# 4 跨行转账信息表（GTGSH_TR_IBTF）\n",
    "for df in tqdm([tr_ibtf_train, tr_ibtf_test_a], postfix='ibtf'):\n",
    "    # 转出笔数\n",
    "    df['IBTF2_TR_CNT_OUT'] = df['IBTF_TR_CNT'] - df['IBTF_TR_CNT_IN']\n",
    "    df['IBTF2_MOTH_TR_CNT_OUT'] = df['IBTF_MOTH_TR_CNT'] - df['IBTF_MOTH_TR_CNT_IN']\n",
    "    df['IBTF2_SEAN_TR_CNT_OUT'] = df['IBTF_SEAN_TR_CNT'] - df['IBTF_SEAN_TR_CNT_IN']\n",
    "    df['IBTF2_YEAR_TR_CNT_OUT'] = df['IBTF_YEAR_TR_CNT'] - df['IBTF_YEAR_TR_CNT_IN']\n",
    "\n",
    "    # 转出转入笔数差\n",
    "    df['IBTF2_TR_CNT_NET'] = df['IBTF2_TR_CNT_OUT'] - df['IBTF_TR_CNT_IN']\n",
    "    df['IBTF2_MOTH_TR_CNT_NET'] = df['IBTF2_MOTH_TR_CNT_OUT'] - df['IBTF_MOTH_TR_CNT_IN']\n",
    "    df['IBTF2_SEAN_TR_CNT_NET'] = df['IBTF2_SEAN_TR_CNT_OUT'] - df['IBTF_SEAN_TR_CNT_IN']\n",
    "    df['IBTF2_YEAR_TR_CNT_NET'] = df['IBTF2_YEAR_TR_CNT_OUT'] - df['IBTF_YEAR_TR_CNT_IN']\n",
    "\n",
    "    # 转出金额\n",
    "    df['IBTF2_TR_AMT_OUT'] = df['IBTF_TR_AMT'] - df['IBTF_TR_AMT_IN']\n",
    "    df['IBTF2_MOTH_TR_AMT_OUT'] = df['IBTF_MOTH_TR_AMT'] - df['IBTF_MOTH_TR_AMT_IN']\n",
    "    df['IBTF2_SEAN_TR_AMT_OUT'] = df['IBTF_SEAN_TR_AMT'] - df['IBTF_SEAN_TR_AMT_IN']\n",
    "    df['IBTF2_YEAR_TR_AMT_OUT'] = df['IBTF_YEAR_TR_AMT'] - df['IBTF_YEAR_TR_AMT_IN']\n",
    "    \n",
    "    # 转出转入金额差\n",
    "    df['IBTF2_TR_AMT_NET'] = df['IBTF2_TR_CNT_OUT'] - df['IBTF_TR_CNT_IN']\n",
    "    df['IBTF2_MOTH_TR_AMT_NET'] = df['IBTF2_MOTH_TR_CNT_OUT'] - df['IBTF_MOTH_TR_CNT_IN']\n",
    "    df['IBTF2_SEAN_TR_AMT_NET'] = df['IBTF2_SEAN_TR_CNT_OUT'] - df['IBTF_SEAN_TR_CNT_IN']\n",
    "    df['IBTF2_YEAR_TR_AMT_NET'] = df['IBTF2_YEAR_TR_CNT_OUT'] - df['IBTF_YEAR_TR_CNT_IN']\n",
    "    \n",
    "    # 净交易/总交易\n",
    "    df['IBTF2_TR_AMT_NET_div_ALL'] = df['IBTF2_TR_AMT_NET'] / df['IBTF_TR_AMT']  # 净交易金额/交易金额\n",
    "    df['IBTF2_MOTH_TR_AMT_NET_div_ALL'] = df['IBTF2_MOTH_TR_AMT_NET'] / df['IBTF_MOTH_TR_AMT']  # 月净交易金额/月交易金额\n",
    "    df['IBTF2_SEAN_TR_AMT_NET_div_ALL'] = df['IBTF2_SEAN_TR_AMT_NET'] / df['IBTF_SEAN_TR_AMT']  # 季净交易金额/季交易金额\n",
    "    df['IBTF2_YEAR_TR_AMT_NET_div_ALL'] = df['IBTF2_YEAR_TR_AMT_NET'] / df['IBTF_YEAR_TR_AMT']  # 年净交易金额/年交易金额\n",
    "\n",
    "    df['IBTF2_TR_CNT_NET_div_ALL'] = df['IBTF2_TR_CNT_NET'] / df['IBTF_TR_CNT']  # 净交易笔数/交易笔数\n",
    "    df['IBTF2_MOTH_TR_CNT_NET_div_ALL'] = df['IBTF2_MOTH_TR_CNT_NET'] / df['IBTF_MOTH_TR_CNT']  # 月净交易笔数/月交易笔数\n",
    "    df['IBTF2_SEAN_TR_CNT_NET_div_ALL'] = df['IBTF2_SEAN_TR_CNT_NET'] / df['IBTF_SEAN_TR_CNT']  # 季净交易笔数/季交易笔数\n",
    "    df['IBTF2_YEAR_TR_CNT_NET_div_ALL'] = df['IBTF2_YEAR_TR_CNT_NET'] / df['IBTF_YEAR_TR_CNT']  # 年净交易笔数/年交易笔数\n",
    "\n",
    "    # 笔均转出转入金额 金额/笔数\n",
    "    df['IBTF2_TR_AMT_IN_each'] = df['IBTF_TR_AMT_IN'] / df['IBTF_TR_CNT_IN']\n",
    "    df['IBTF2_MOTH_TR_AMT_IN_each'] = df['IBTF_MOTH_TR_AMT_IN'] / df['IBTF_MOTH_TR_CNT_IN']\n",
    "    df['IBTF2_SEAN_TR_AMT_IN_each'] = df['IBTF_SEAN_TR_AMT_IN'] / df['IBTF_SEAN_TR_CNT_IN']\n",
    "    df['IBTF2_YEAR_TR_AMT_IN_each'] = df['IBTF_YEAR_TR_AMT_IN'] / df['IBTF_YEAR_TR_CNT_IN']\n",
    "\n",
    "    df['IBTF2_TR_AMT_OUT_each'] = df['IBTF2_TR_AMT_OUT'] / df['IBTF2_TR_CNT_OUT']\n",
    "    df['IBTF2_MOTH_TR_AMT_OUT_each'] = df['IBTF2_MOTH_TR_AMT_OUT'] / df['IBTF2_MOTH_TR_CNT_OUT']\n",
    "    df['IBTF2_SEAN_TR_AMT_OUT_each'] = df['IBTF2_SEAN_TR_AMT_OUT'] / df['IBTF2_SEAN_TR_CNT_OUT']\n",
    "    df['IBTF2_YEAR_TR_AMT_OUT_each'] = df['IBTF2_YEAR_TR_AMT_OUT'] / df['IBTF2_YEAR_TR_CNT_OUT']\n",
    "    \n",
    "    del df \n",
    "    gc.collect()\n",
    "\n",
    "drop_cols = ['DATA_DAT']\n",
    "# 5 第三方支付交易表（GTGSH_TR_TPAY）\n",
    "for df in tqdm([tr_tpay_train, tr_tpay_test_a], postfix='tpay'):\n",
    "    # 其他支付=总-支付宝-财付通\n",
    "    df['TPAY2_OTHER_MOTH_TR_AMT'] = df['TPAY_MOTH_TR_AMT'] - df['TPAY_WX_MOTH_TR_AMT'] - df['TPAY_ALI_MOTH_TR_AMT']\n",
    "    df['TPAY2_OTHER_SEAN_TR_AMT'] = df['TPAY_SEAN_TR_AMT'] - df['TPAY_WX_SEAN_TR_AMT'] - df['TPAY_ALI_SEAN_TR_AMT']\n",
    "\n",
    "    df['TPAY2_OTHER_MOTH_TR_CNT'] = df['TPAY_MOTH_TR_CNT'] - df['TPAY_WX_MOTH_TR_CNT'] - df['TPAY_ALI_MOTH_TR_CNT']\n",
    "    df['TPAY2_OTHER_SEAN_TR_CNT'] = df['TPAY_SEAN_TR_CNT'] - df['TPAY_WX_SEAN_TR_CNT'] - df['TPAY_ALI_SEAN_TR_CNT']\n",
    "\n",
    "    # 净交易/总交易\n",
    "    df['TPAY2_MOTH_NET_TR_AMT_div_ALL'] = df['TPAY_MOTH_NET_TR_AMT'] / df['TPAY_MOTH_TR_AMT']\n",
    "    df['TPAY2_SEAN_NET_TR_AMT_div_ALL'] = df['TPAY_SEAN_NET_TR_AMT'] / df['TPAY_SEAN_TR_AMT']\n",
    "\n",
    "    # 笔均\n",
    "    df['TPAY2_TPAY_MOTH_TR_AMT_each'] = df['TPAY_MOTH_TR_AMT'] / df['TPAY_MOTH_TR_CNT']\n",
    "    df['TPAY2_TPAY_SEAN_TR_AMT_each'] = df['TPAY_SEAN_TR_AMT'] / df['TPAY_SEAN_TR_CNT']\n",
    "\n",
    "    df['TPAY2_TPAY_WX_MOTH_TR_AMT_each'] = df['TPAY_WX_MOTH_TR_AMT'] / df['TPAY_WX_MOTH_TR_CNT']\n",
    "    df['TPAY2_TPAY_WX_SEAN_TR_AMT_each'] = df['TPAY_WX_SEAN_TR_AMT'] / df['TPAY_WX_SEAN_TR_CNT']\n",
    "\n",
    "    df['TPAY2_TPAY_ALI_MOTH_TR_AMT_each'] = df['TPAY_ALI_MOTH_TR_AMT'] / df['TPAY_ALI_MOTH_TR_CNT']\n",
    "    df['TPAY2_TPAY_ALI_SEAN_TR_AMT_each'] = df['TPAY_ALI_SEAN_TR_AMT'] / df['TPAY_ALI_SEAN_TR_CNT']\n",
    "\n",
    "    df['TPAY2_OTHER_MOTH_TR_AMT_each'] = df['TPAY2_OTHER_MOTH_TR_AMT'] / df['TPAY2_OTHER_MOTH_TR_CNT']\n",
    "    df['TPAY2_OTHER_SEAN_TR_AMT_each'] = df['TPAY2_OTHER_SEAN_TR_AMT'] / df['TPAY2_OTHER_SEAN_TR_CNT']\n",
    "\n",
    "    df.drop(drop_cols, axis=1, inplace=True )\n",
    "\n",
    "    del df \n",
    "    gc.collect()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "58716c7b-8381-4bf3-be4a-4c2b21737c0c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:05:18.818951Z",
     "iopub.status.busy": "2024-11-13T07:05:18.818460Z",
     "iopub.status.idle": "2024-11-13T07:05:54.206768Z",
     "msg_id": "f2f2111b-f13a-413b-8e44-772c95891d3e",
     "shell.execute_reply": "2024-11-13T07:05:54.206053Z",
     "shell.execute_reply.started": "2024-11-13T07:05:18.818925Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 3/3 [00:01<00:00,  2.03it/s]\n",
      "100%|██████████| 3/3 [00:00<00:00, 19.51it/s]\n"
     ]
    }
   ],
   "source": [
    "def get_dense_features(df, col, stat):\n",
    "    if stat == \"kurt\":\n",
    "        f_stat = lambda x: x.kurt()\n",
    "    elif stat == \"quantile_1_4\":\n",
    "        f_stat = lambda x: x.quantile(0.25)\n",
    "    elif stat == \"quantile_1_2\":\n",
    "        f_stat = lambda x: x.quantile(0.5)\n",
    "    else:\n",
    "        f_stat = stat\n",
    "    group_df = df.groupby(['CUST_NO'])[col].agg(f_stat).reset_index()\n",
    "    group_df.columns = ['CUST_NO', 'CUST_NO_'+'{}_'.format(col)+stat]\n",
    "    return group_df\n",
    "    \n",
    "def get_all_dense_features(df_fea, df_to_groupby, stats):\n",
    "    dense_col = [col for col in df_to_groupby.columns if col != \"CUST_NO\"]\n",
    "    for col in tqdm(dense_col):\n",
    "        for stat in tqdm(stats):\n",
    "            df_fea = df_fea.merge(get_dense_features(df_to_groupby, col, stat), on='CUST_NO', how='left')\n",
    "    return df_fea\n",
    "    \n",
    "def get_id_category_features(df_fea, df_to_groupby, fea1, fea2, stat):\n",
    "    tmp = df_to_groupby.groupby(['CUST_NO', fea1])[fea2].agg(\n",
    "        stat if stat != \"kurt\" else lambda x: x.kurt()\n",
    "    ).to_frame(\n",
    "        '_'.join(['CUST_NO', fea1, fea2, stat])\n",
    "    ).reset_index()\n",
    "    \n",
    "    df_tmp = pd.pivot(data=tmp, index='CUST_NO', columns=fea1, values='_'.join(['CUST_NO', fea1, fea2, stat]))  # index: CUST_NO\n",
    "    new_fea_cols = ['_'.join(['CUST_NO', fea1, fea2, stat, str(col)]) for col in df_tmp.columns]\n",
    "    df_tmp.columns = new_fea_cols\n",
    "    df_tmp.reset_index(inplace=True)\n",
    "        \n",
    "    if stat == 'count':\n",
    "        df_tmp = df_tmp.fillna(0)\n",
    "        \n",
    "    # 去掉全NaN列\n",
    "    valid_cols = []\n",
    "    for col in df_tmp.columns:\n",
    "        if not df_tmp[col].isna().all():\n",
    "            valid_cols.append(col)\n",
    "            \n",
    "    df_fea = df_fea.merge(df_tmp[valid_cols], on='CUST_NO', how='left')\n",
    "    return df_fea, new_fea_cols \n",
    "    \n",
    "def get_all_id_category_features(df_fea, df_to_groupby, fea1, fea2, stats):\n",
    "    all_new_fea_cols = []\n",
    "    for stat in tqdm(stats):\n",
    "        df_fea, new_fea_cols = get_id_category_features(df_fea, df_to_groupby, fea1, fea2, stat)\n",
    "        all_new_fea_cols += new_fea_cols\n",
    "    return df_fea, all_new_fea_cols\n",
    "\n",
    "# 6 掌银页面访问明细表(GTGSH_MB_PAGEVIEW_DTL)\n",
    "# 6.1.1 点击模块/页面分组统计量特征\n",
    "def gen_mb_features_by_day(df):\n",
    "    def get_days_to_now(df):\n",
    "        df[\"mb_pageview_dtl_OPERATION_DATE\"] = pd.to_datetime(df[\"mb_pageview_dtl_OPERATION_DATE\"], format=\"%Y%m%d\")\n",
    "        df_months_to_now = (df[\"mb_pageview_dtl_OPERATION_DATE\"].max() - df[\"mb_pageview_dtl_OPERATION_DATE\"]).dt.days\n",
    "        df[\"date_months_to_now\"] = df_months_to_now // 31  # 距今月数\n",
    "        df[\"date_weeks_to_now\"] = df_months_to_now // 7  # 距今周数\n",
    "        df[\"date_days_to_now\"] = df_months_to_now  # 距今天数\n",
    "        return df\n",
    "\n",
    "    def get_max_cnt_days_to_now(df, month):\n",
    "        # 每月日点击数/日点击页面数最大天距今天数\n",
    "        tmp_df_nunique = df.groupby(['CUST_NO']).agg({\"mb_pageview_dtl_PAGE_TITLE_nunique\": \"max\"}).reset_index()  \n",
    "        tmp_df_nunique = tmp_df_nunique.merge(df[['CUST_NO', 'date_days_to_now', 'mb_pageview_dtl_PAGE_TITLE_nunique']], on=[\"CUST_NO\", 'mb_pageview_dtl_PAGE_TITLE_nunique'], how=\"inner\")\n",
    "        tmp_df_nunique = tmp_df_nunique.groupby(['CUST_NO'])[\"date_days_to_now\"].min().to_frame(\"max_nunique_days_to_now_{}\".format(str(month))).reset_index()  # 取最近一天\n",
    "\n",
    "        tmp_df_cnt = df.groupby(['CUST_NO']).agg({\"mb_pageview_dtl_PAGE_TITLE_count\": \"max\"}).reset_index()  \n",
    "        tmp_df_cnt = tmp_df_cnt.merge(df[['CUST_NO', 'date_days_to_now', 'mb_pageview_dtl_PAGE_TITLE_count']], on=[\"CUST_NO\", 'mb_pageview_dtl_PAGE_TITLE_count'], how=\"inner\")\n",
    "        tmp_df_cnt = tmp_df_cnt.groupby(['CUST_NO'])[\"date_days_to_now\"].min().to_frame(\"max_count_days_to_now_{}\".format(str(month))).reset_index()  # 取最近一天\n",
    "            \n",
    "        return tmp_df_nunique, tmp_df_cnt\n",
    "\n",
    "    \"\"\" 1 数据预处理 \"\"\"\n",
    "    # 1.1 日期转换为距最大日期天数\n",
    "    df = df.copy()\n",
    "    df = get_days_to_now(df)\n",
    "    feature = df[[\"CUST_NO\"]].drop_duplicates(['CUST_NO']).copy().reset_index(drop=True)\n",
    "    \n",
    "    # 1.2 按天/交易代码聚合\n",
    "    # 1.2.1 按天聚合\n",
    "    df_by_day = df.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\"])[\"mb_pageview_dtl_PAGE_TITLE\"].agg(['nunique', 'count'])\n",
    "    df_by_day.columns = ['mb_pageview_dtl_PAGE_TITLE_nunique', 'mb_pageview_dtl_PAGE_TITLE_count']\n",
    "    df_by_day = df_by_day.reset_index()\n",
    "\n",
    "    \"\"\"\" 2 RFM-R: 每月日点击笔数/日点击页面数最大天距今天数 \"\"\"\n",
    "    tmp_feature = df_by_day[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "    for month in tqdm([0, 1, 2]):\n",
    "        data_month = df_by_day[df_by_day[\"date_months_to_now\"]==month]\n",
    "        tmp_df_nunique, tmp_df_cnt = get_max_cnt_days_to_now(data_month, month)\n",
    "        tmp_feature = tmp_feature.merge(tmp_df_nunique, how=\"left\", on=\"CUST_NO\")\n",
    "        tmp_feature = tmp_feature.merge(tmp_df_cnt, how=\"left\", on=\"CUST_NO\")\n",
    "    feature = feature.merge(tmp_feature, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "    return feature\n",
    "\n",
    "mb_feature_train = gen_mb_features_by_day(mb_pageview_dtl_train)\n",
    "mb_feature_test = gen_mb_features_by_day(mb_pageview_dtl_test_a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "50f2f745-91f3-4890-9711-60e37ca5bddc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:05:54.208345Z",
     "iopub.status.busy": "2024-11-13T07:05:54.207918Z",
     "iopub.status.idle": "2024-11-13T07:20:54.412098Z",
     "msg_id": "2e1460f8-0557-4157-b758-a7c36e3be190",
     "shell.execute_reply": "2024-11-13T07:20:54.411364Z",
     "shell.execute_reply.started": "2024-11-13T07:05:54.208318Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "len(common_word_model): 1796\n",
      "len(common_word_page): 13180\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 88%|████████▊ | 7/8 [03:10<00:56, 56.32s/it]IOStream.flush timed out\n",
      "100%|██████████| 8/8 [05:38<00:00, 42.31s/it]\n",
      " 88%|████████▊ | 7/8 [03:04<00:54, 54.73s/it]IOStream.flush timed out\n",
      "100%|██████████| 8/8 [05:27<00:00, 40.98s/it]\n",
      "100%|██████████| 8/8 [00:33<00:00,  4.25s/it]\n",
      "100%|██████████| 8/8 [00:32<00:00,  4.07s/it]\n"
     ]
    }
   ],
   "source": [
    "# 6.1.2 点击模块/页面拼接分组统计量特征\n",
    "def gen_mb_all_join_op_features_by_days(df_train, df_test):\n",
    "    def get_days_to_now(df):\n",
    "        df[\"mb_pageview_dtl_OPERATION_DATE\"] = pd.to_datetime(df[\"mb_pageview_dtl_OPERATION_DATE\"], format=\"%Y%m%d\")\n",
    "        df_months_to_now = (df[\"mb_pageview_dtl_OPERATION_DATE\"].max() - df[\"mb_pageview_dtl_OPERATION_DATE\"]).dt.days\n",
    "        df[\"date_months_to_now\"] = df_months_to_now // 31  # 距今月数\n",
    "        df[\"date_weeks_to_now\"] = df_months_to_now // 7  # 距今周数\n",
    "        df[\"date_days_to_now\"] = df_months_to_now  # 距今天数   \n",
    "        \n",
    "        return df\n",
    "\n",
    "    def gen_mb_join_op_features_by_days(df_feature, df_model, df_page):\n",
    "        # 1 按天/交易代码聚合：取训练集前60点击模块/页面，用于分组统计\n",
    "        df_model.loc[~df_model['mb_pageview_dtl_REFERRER_MODEL_NAME_text'].isin([\n",
    "            '6bb41067851861502c74edd3b31005ae_6bb41067851861502c74edd3b31005ae',\n",
    "            '5e708d40e993fe1bdb05137c1b332159_6bb41067851861502c74edd3b31005ae',\n",
    "            '7619f114489310d42a8e28428ca63365_7619f114489310d42a8e28428ca63365',\n",
    "            '6bb41067851861502c74edd3b31005ae_a780b0fb118f24e312c529fa155a9842',\n",
    "            '6bb41067851861502c74edd3b31005ae_7619f114489310d42a8e28428ca63365',\n",
    "            'e1db7167ba7354e6f7726a826157b01d_e1db7167ba7354e6f7726a826157b01d',\n",
    "            '7619f114489310d42a8e28428ca63365_6bb41067851861502c74edd3b31005ae',\n",
    "            'a780b0fb118f24e312c529fa155a9842_b3ab3a75ec639b57bcfa5464d2beb2e3',\n",
    "            'a780b0fb118f24e312c529fa155a9842_6bb41067851861502c74edd3b31005ae',\n",
    "            '7619f114489310d42a8e28428ca63365_a780b0fb118f24e312c529fa155a9842',\n",
    "            'a780b0fb118f24e312c529fa155a9842_7619f114489310d42a8e28428ca63365',\n",
    "            'b3ab3a75ec639b57bcfa5464d2beb2e3_6bb41067851861502c74edd3b31005ae',\n",
    "            'b3ab3a75ec639b57bcfa5464d2beb2e3_e0cb9e3e71029836e967b79c6142f269',\n",
    "            '6bb41067851861502c74edd3b31005ae_b3ab3a75ec639b57bcfa5464d2beb2e3',\n",
    "            '5e708d40e993fe1bdb05137c1b332159_7619f114489310d42a8e28428ca63365',\n",
    "            'c99a39f3c62ae02128cdb0acf5c1d2dd_c99a39f3c62ae02128cdb0acf5c1d2dd',\n",
    "            'e0cb9e3e71029836e967b79c6142f269_6bb41067851861502c74edd3b31005ae',\n",
    "            'e1db7167ba7354e6f7726a826157b01d_6bb41067851861502c74edd3b31005ae',\n",
    "            'a780b0fb118f24e312c529fa155a9842_2cadedba80c7b47479e07f67c2f7a02b',\n",
    "            'b3ab3a75ec639b57bcfa5464d2beb2e3_b3ab3a75ec639b57bcfa5464d2beb2e3',\n",
    "            'f140855f513dcf75e3b455684351fbe6_f140855f513dcf75e3b455684351fbe6',\n",
    "            '2cadedba80c7b47479e07f67c2f7a02b_2cadedba80c7b47479e07f67c2f7a02b',\n",
    "            'a780b0fb118f24e312c529fa155a9842_a780b0fb118f24e312c529fa155a9842',\n",
    "            '5a4f90c9f6e5be172c819bc65ee73d09_5a4f90c9f6e5be172c819bc65ee73d09',\n",
    "            'cd17e55565660174030893770260f7c8_cd17e55565660174030893770260f7c8',\n",
    "            'b3ab3a75ec639b57bcfa5464d2beb2e3_7619f114489310d42a8e28428ca63365',\n",
    "            '5e708d40e993fe1bdb05137c1b332159_a780b0fb118f24e312c529fa155a9842',\n",
    "            '2cadedba80c7b47479e07f67c2f7a02b_6bb41067851861502c74edd3b31005ae',\n",
    "            'c99a39f3c62ae02128cdb0acf5c1d2dd_6bb41067851861502c74edd3b31005ae',\n",
    "            '20ff69117c3ad03a177cb47b7a3d6966_20ff69117c3ad03a177cb47b7a3d6966',\n",
    "            '6bb41067851861502c74edd3b31005ae_c99a39f3c62ae02128cdb0acf5c1d2dd',\n",
    "            '2cadedba80c7b47479e07f67c2f7a02b_b3ab3a75ec639b57bcfa5464d2beb2e3',\n",
    "            'f0e4745172d74e9a04b3313dd8a9f4ee_e1db7167ba7354e6f7726a826157b01d',\n",
    "            '6bb41067851861502c74edd3b31005ae_e1db7167ba7354e6f7726a826157b01d',\n",
    "            'a780b0fb118f24e312c529fa155a9842_e1db7167ba7354e6f7726a826157b01d',\n",
    "            '28320f537e764e13b36492518aeebb10_28320f537e764e13b36492518aeebb10',\n",
    "            'e1db7167ba7354e6f7726a826157b01d_a780b0fb118f24e312c529fa155a9842',\n",
    "            'a72547450932263fae5aff76dc29ef1f_6bb41067851861502c74edd3b31005ae',\n",
    "            'b3ab3a75ec639b57bcfa5464d2beb2e3_e1db7167ba7354e6f7726a826157b01d',\n",
    "            'f140855f513dcf75e3b455684351fbe6_6bb41067851861502c74edd3b31005ae',\n",
    "            '6bb41067851861502c74edd3b31005ae_a72547450932263fae5aff76dc29ef1f',\n",
    "            '6bb41067851861502c74edd3b31005ae_20ff69117c3ad03a177cb47b7a3d6966',\n",
    "            'a72547450932263fae5aff76dc29ef1f_a72547450932263fae5aff76dc29ef1f',\n",
    "            '20ff69117c3ad03a177cb47b7a3d6966_6bb41067851861502c74edd3b31005ae',\n",
    "            'cd17e55565660174030893770260f7c8_6bb41067851861502c74edd3b31005ae',\n",
    "            '6bb41067851861502c74edd3b31005ae_cd17e55565660174030893770260f7c8',\n",
    "            '5a4f90c9f6e5be172c819bc65ee73d09_6bb41067851861502c74edd3b31005ae',\n",
    "            '6bb41067851861502c74edd3b31005ae_2cadedba80c7b47479e07f67c2f7a02b',\n",
    "            'e0cb9e3e71029836e967b79c6142f269_e0cb9e3e71029836e967b79c6142f269',\n",
    "            'c99a39f3c62ae02128cdb0acf5c1d2dd_a780b0fb118f24e312c529fa155a9842',\n",
    "            '6bb41067851861502c74edd3b31005ae_523ee61f203b6af0d2e50805b7dc61b5',\n",
    "            '6bb41067851861502c74edd3b31005ae_bade81e9cdfd1389dfa9df5118b258d3',\n",
    "            'c1b479511ffd01f6e9f3ccf238311999_c1b479511ffd01f6e9f3ccf238311999',\n",
    "            '6bb41067851861502c74edd3b31005ae_5a4f90c9f6e5be172c819bc65ee73d09',\n",
    "            'fe701532ade40d76bf1e550ac32dbd8c_fe701532ade40d76bf1e550ac32dbd8c',\n",
    "            '7619f114489310d42a8e28428ca63365_2cadedba80c7b47479e07f67c2f7a02b',\n",
    "            '28320f537e764e13b36492518aeebb10_6bb41067851861502c74edd3b31005ae',\n",
    "            'a780b0fb118f24e312c529fa155a9842_c99a39f3c62ae02128cdb0acf5c1d2dd',\n",
    "            '6bb41067851861502c74edd3b31005ae_c1b479511ffd01f6e9f3ccf238311999',\n",
    "            '6bb41067851861502c74edd3b31005ae_f140855f513dcf75e3b455684351fbe6'\n",
    "        ]), 'mb_pageview_dtl_REFERRER_MODEL_NAME_text'] = 'other'  \n",
    "        df_page.loc[~df_page['mb_pageview_dtl_REFERRER_TITLE_text'].isin([\n",
    "            'c36a4b6527a8a5a74ae2d14492431b61_6bb41067851861502c74edd3b31005ae',\n",
    "            '3f54b3d12dcecc882dccfd4e422360f2_c36a4b6527a8a5a74ae2d14492431b61',\n",
    "            '3f54b3d12dcecc882dccfd4e422360f2_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            '769dab657beb45bcc1a7b00706de01aa_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            '428a1709f7945a951928d397b9e35072_fb05b0d0036d613437aefd9b83e6e01f',\n",
    "            '99e968a9ee67ca8a825870088c1ea915_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            '3f54b3d12dcecc882dccfd4e422360f2_6bb41067851861502c74edd3b31005ae',\n",
    "            '3f54b3d12dcecc882dccfd4e422360f2_8905e029105a9701700df660a8291e46',\n",
    "            '8905e029105a9701700df660a8291e46_99e968a9ee67ca8a825870088c1ea915',\n",
    "            'ff75360da2154fd20952e2f5c03861ef_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            '3f54b3d12dcecc882dccfd4e422360f2_77cea8b21bd25a752c91d8d4b275f2a5',\n",
    "            '6c9351679754f4ec681e8d3e5146903d_ff75360da2154fd20952e2f5c03861ef',\n",
    "            '3f54b3d12dcecc882dccfd4e422360f2_428a1709f7945a951928d397b9e35072',\n",
    "            '3f54b3d12dcecc882dccfd4e422360f2_ff75360da2154fd20952e2f5c03861ef',\n",
    "            '1ad825ba1e30ef46aee0de447ad16742_8905e029105a9701700df660a8291e46',\n",
    "            'fb05b0d0036d613437aefd9b83e6e01f_769dab657beb45bcc1a7b00706de01aa',\n",
    "            'ff75360da2154fd20952e2f5c03861ef_6c9351679754f4ec681e8d3e5146903d',\n",
    "            'f043e97a2002222169dc0e333d555d2d_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            '99e968a9ee67ca8a825870088c1ea915_769dab657beb45bcc1a7b00706de01aa',\n",
    "            '8f8869df6bf7afd348c625dc682dbbce_c36a4b6527a8a5a74ae2d14492431b61',\n",
    "            '8905e029105a9701700df660a8291e46_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            'fb05b0d0036d613437aefd9b83e6e01f_99e968a9ee67ca8a825870088c1ea915',\n",
    "            '72627bd2d3238c1a4a40658db3b8d70e_fb05b0d0036d613437aefd9b83e6e01f',\n",
    "            'fb05b0d0036d613437aefd9b83e6e01f_72627bd2d3238c1a4a40658db3b8d70e',\n",
    "            '8905e029105a9701700df660a8291e46_f043e97a2002222169dc0e333d555d2d',\n",
    "            '853969856754297b22853aa695037fc9_91e383cbe5e01046d016f8d47c46c219',\n",
    "            '77cea8b21bd25a752c91d8d4b275f2a5_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            'bff7cb808ab4be18f7abb0c9cab60b46_ff75360da2154fd20952e2f5c03861ef',\n",
    "            '3f54b3d12dcecc882dccfd4e422360f2_1ad825ba1e30ef46aee0de447ad16742',\n",
    "            '57fc4d942ccb0bf5535f64729f9582fd_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            'b6ad9a0d78229fbcb28f35aeb91cefc8_853969856754297b22853aa695037fc9',\n",
    "            '6bb41067851861502c74edd3b31005ae_428a1709f7945a951928d397b9e35072',\n",
    "            'ff75360da2154fd20952e2f5c03861ef_bff7cb808ab4be18f7abb0c9cab60b46',\n",
    "            '57fc4d942ccb0bf5535f64729f9582fd_769dab657beb45bcc1a7b00706de01aa',\n",
    "            '8f8869df6bf7afd348c625dc682dbbce_8f8869df6bf7afd348c625dc682dbbce',\n",
    "            '101b4aaf2f1ec72c768452000c23b0d6_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            'fb05b0d0036d613437aefd9b83e6e01f_57fc4d942ccb0bf5535f64729f9582fd',\n",
    "            '769dab657beb45bcc1a7b00706de01aa_8905e029105a9701700df660a8291e46',\n",
    "            'd27e130e830875eb72112df1a624672a_fb05b0d0036d613437aefd9b83e6e01f',\n",
    "            'f043e97a2002222169dc0e333d555d2d_769dab657beb45bcc1a7b00706de01aa',\n",
    "            '77cea8b21bd25a752c91d8d4b275f2a5_99e968a9ee67ca8a825870088c1ea915',\n",
    "            '8905e029105a9701700df660a8291e46_101b4aaf2f1ec72c768452000c23b0d6',\n",
    "            '769dab657beb45bcc1a7b00706de01aa_8f8869df6bf7afd348c625dc682dbbce',\n",
    "            '793752b99fc71532ccc63272460343b3_ff75360da2154fd20952e2f5c03861ef',\n",
    "            '99e968a9ee67ca8a825870088c1ea915_8f8869df6bf7afd348c625dc682dbbce',\n",
    "            '8905e029105a9701700df660a8291e46_8905e029105a9701700df660a8291e46',\n",
    "            'ff75360da2154fd20952e2f5c03861ef_793752b99fc71532ccc63272460343b3',\n",
    "            'a2d0b7e86b75c770a551ae9bb7d2396b_e2c68fd221520adf8524e01c9d65bc78',\n",
    "            '58ebef9a73a7a5d4f4f97b286ab5dbff_41c1974bb6a577025b063a7a6ec72c71',\n",
    "            '91e383cbe5e01046d016f8d47c46c219_fb05b0d0036d613437aefd9b83e6e01f',\n",
    "            'fb05b0d0036d613437aefd9b83e6e01f_f043e97a2002222169dc0e333d555d2d',\n",
    "            '428a1709f7945a951928d397b9e35072_6bb41067851861502c74edd3b31005ae',\n",
    "            'd93b3061f844b2762c270f1fd83b5037_c36a4b6527a8a5a74ae2d14492431b61',\n",
    "            'fb05b0d0036d613437aefd9b83e6e01f_428a1709f7945a951928d397b9e35072',\n",
    "            '428a1709f7945a951928d397b9e35072_b6ad9a0d78229fbcb28f35aeb91cefc8',\n",
    "            'd27e130e830875eb72112df1a624672a_d27e130e830875eb72112df1a624672a',\n",
    "            '3f54b3d12dcecc882dccfd4e422360f2_d93b3061f844b2762c270f1fd83b5037',\n",
    "            '71e9de08aa765dd5f525fbdd4e8fae7a_3f54b3d12dcecc882dccfd4e422360f2',\n",
    "            '8905e029105a9701700df660a8291e46_4cf0659b76a5dabd0de166c9ec92d678',\n",
    "            '77cea8b21bd25a752c91d8d4b275f2a5_77cea8b21bd25a752c91d8d4b275f2a5'\n",
    "        ]), 'mb_pageview_dtl_REFERRER_TITLE_text'] = 'other'\n",
    "        df_by_day_pages = df_page.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", 'mb_pageview_dtl_REFERRER_TITLE_text'])[\"mb_pageview_dtl_REFERRER_TITLE_text\"].agg(['count'])\n",
    "        df_by_day_pages = df_by_day_pages.reset_index()\n",
    "        df_by_day_models = df_model.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", 'mb_pageview_dtl_REFERRER_MODEL_NAME_text'])[\"mb_pageview_dtl_REFERRER_MODEL_NAME_text\"].agg(['count'])    \n",
    "        df_by_day_models = df_by_day_models.reset_index()\n",
    "        \n",
    "        \"\"\" 2 页面/模块拼接分组点击数趋势 \"\"\"\n",
    "        # 2.1 日页面拼接分组点击数趋势\n",
    "        df_feature, _ = get_all_id_category_features(\n",
    "                        df_feature, df_by_day_pages, fea1='mb_pageview_dtl_REFERRER_TITLE_text', fea2='count',\n",
    "                        stats=['mean', 'max', 'min', 'median', 'std', 'sum', \"skew\", \"kurt\"]\n",
    "                    )\n",
    "        # 2.2 日模块拼接分组点击数趋势\n",
    "        df_feature, _ = get_all_id_category_features(\n",
    "                        df_feature, df_by_day_models, fea1='mb_pageview_dtl_REFERRER_MODEL_NAME_text', fea2='count',\n",
    "                        stats=['mean', 'max', 'min', 'median', 'std', 'sum', \"skew\", \"kurt\"]\n",
    "                    )    \n",
    "        return df_feature\n",
    "    \n",
    "    feature_train = df_train[[\"CUST_NO\"]].drop_duplicates(['CUST_NO']).copy().reset_index(drop=True)\n",
    "    feature_test = df_test[[\"CUST_NO\"]].drop_duplicates(['CUST_NO']).copy().reset_index(drop=True)\n",
    "    \n",
    "    # 1.1 日期转换\n",
    "    df_train = get_days_to_now(df_train).copy()\n",
    "    df_test = get_days_to_now(df_test).copy()\n",
    "    \n",
    "    # 1.2 获取字典\n",
    "    df_encode = pd.concat([df_train, df_test], axis=0)\n",
    "    df_encode = df_encode[['mb_pageview_dtl_MODEL_NAME','mb_pageview_dtl_PAGE_TITLE']].drop_duplicates()\n",
    "    page2model_dict = dict(zip(df_encode['mb_pageview_dtl_PAGE_TITLE'], df_encode['mb_pageview_dtl_MODEL_NAME']))\n",
    "\n",
    "    # 2 点击模块拼接\n",
    "    # 2.1 训练集\n",
    "    df_train['mb_pageview_dtl_REFERRER_MODEL_NAME'] = df_train['mb_pageview_dtl_REFERRER_TITLE'].map(page2model_dict)\n",
    "    df_model_train = df_train[['CUST_NO', 'mb_pageview_dtl_REFERRER_MODEL_NAME', 'mb_pageview_dtl_MODEL_NAME', 'date_days_to_now', \"date_weeks_to_now\", 'date_months_to_now']].copy()\n",
    "    df_model_train['mb_pageview_dtl_REFERRER_MODEL_NAME_text'] = df_model_train['mb_pageview_dtl_REFERRER_MODEL_NAME'].astype(str) + '_' + df_train['mb_pageview_dtl_MODEL_NAME'].astype(str)\n",
    "\n",
    "    # 2.2 测试集\n",
    "    df_test['mb_pageview_dtl_REFERRER_MODEL_NAME'] = df_test['mb_pageview_dtl_REFERRER_TITLE'].map(page2model_dict)\n",
    "    df_model_test = df_test[['CUST_NO', 'mb_pageview_dtl_REFERRER_MODEL_NAME', 'mb_pageview_dtl_MODEL_NAME', 'date_days_to_now', \"date_weeks_to_now\", 'date_months_to_now']].copy()\n",
    "    df_model_test['mb_pageview_dtl_REFERRER_MODEL_NAME_text'] = df_model_test['mb_pageview_dtl_REFERRER_MODEL_NAME'].astype(str) + '_' + df_test['mb_pageview_dtl_MODEL_NAME'].astype(str)\n",
    "    \n",
    "    # 2.3 筛选共有点击模块记录\n",
    "    common_word_model = set(df_model_train[\"mb_pageview_dtl_REFERRER_MODEL_NAME_text\"]).intersection(set(df_model_test[\"mb_pageview_dtl_REFERRER_MODEL_NAME_text\"]))\n",
    "    df_model_train = df_model_train[df_model_train['mb_pageview_dtl_REFERRER_MODEL_NAME_text'].isin(common_word_model)].copy()\n",
    "    df_model_test = df_model_test[df_model_test['mb_pageview_dtl_REFERRER_MODEL_NAME_text'].isin(common_word_model)].copy()\n",
    "    print('len(common_word_model): {}'.format(len(common_word_model)))\n",
    "\n",
    "    # 3 点击页面拼接\n",
    "    # 3.1 训练集\n",
    "    df_page_train = df_train[['CUST_NO', 'mb_pageview_dtl_REFERRER_TITLE', 'mb_pageview_dtl_PAGE_TITLE', 'date_days_to_now', \"date_weeks_to_now\", 'date_months_to_now']].copy()\n",
    "    df_page_train['mb_pageview_dtl_REFERRER_TITLE_text'] = df_train['mb_pageview_dtl_PAGE_TITLE'].astype(str) + '_' + df_train['mb_pageview_dtl_REFERRER_TITLE'].astype(str)\n",
    "\n",
    "    # 3.2 测试集\n",
    "    df_page_test = df_test[['CUST_NO', 'mb_pageview_dtl_REFERRER_TITLE', 'mb_pageview_dtl_PAGE_TITLE', 'date_days_to_now', \"date_weeks_to_now\", 'date_months_to_now']].copy()\n",
    "    df_page_test['mb_pageview_dtl_REFERRER_TITLE_text'] = df_test['mb_pageview_dtl_PAGE_TITLE'].astype(str) + '_' + df_test['mb_pageview_dtl_REFERRER_TITLE'].astype(str)\n",
    "    \n",
    "    # 3.3 筛选共有点击模块记录\n",
    "    common_word_page = set(df_page_train[\"mb_pageview_dtl_REFERRER_TITLE_text\"]).intersection(set(df_page_test[\"mb_pageview_dtl_REFERRER_TITLE_text\"]))\n",
    "    df_page_train = df_page_train[df_page_train['mb_pageview_dtl_REFERRER_TITLE_text'].isin(common_word_page)].copy()\n",
    "    df_page_test = df_page_test[df_page_test['mb_pageview_dtl_REFERRER_TITLE_text'].isin(common_word_page)].copy()\n",
    "    print('len(common_word_page): {}'.format(len(common_word_page)))\n",
    "\n",
    "    # 4 模块/页面拼接分组统计\n",
    "    feature_train = gen_mb_join_op_features_by_days(feature_train, df_model_train, df_page_train)\n",
    "    feature_test = gen_mb_join_op_features_by_days(feature_test, df_model_test, df_page_test)\n",
    "    \n",
    "    return feature_train, feature_test\n",
    "\n",
    "mb_join_op_feature_train, mb_join_op_feature_test = gen_mb_all_join_op_features_by_days(mb_pageview_dtl_train, mb_pageview_dtl_test_a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "f824d705-e2a0-4239-a5ca-634e9e096872",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:21:31.038596Z",
     "iopub.status.busy": "2024-11-13T07:21:31.038094Z",
     "iopub.status.idle": "2024-11-13T07:21:31.891784Z",
     "msg_id": "343ef42f-b2e6-493f-8305-50f078f09765",
     "shell.execute_reply": "2024-11-13T07:21:31.890982Z",
     "shell.execute_reply.started": "2024-11-13T07:21:31.038560Z"
    }
   },
   "outputs": [],
   "source": [
    "pkl_name = './feature/20241101_mb_join_op_A.pkl'\n",
    "if os.path.exists(pkl_name):\n",
    "    with open(pkl_name, 'rb') as f:\n",
    "        mb_join_op_feature_train, mb_join_op_feature_test = pickle.load(f)\n",
    "else:\n",
    "    # 保存特征\n",
    "    with open(pkl_name, 'wb') as f:\n",
    "        pickle.dump([mb_join_op_feature_train, mb_join_op_feature_test], f)      "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "39f1623d-5f25-445b-94bc-5829b41d6754",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:21:31.893820Z",
     "iopub.status.busy": "2024-11-13T07:21:31.893360Z",
     "iopub.status.idle": "2024-11-13T07:23:55.078251Z",
     "msg_id": "c7011103-4559-40c9-aa16-6a886bffad02",
     "shell.execute_reply": "2024-11-13T07:23:55.077431Z",
     "shell.execute_reply.started": "2024-11-13T07:21:31.893791Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "len(common_word_page): 13180\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1/1 [00:25<00:00, 25.44s/it]\n",
      "100%|██████████| 1/1 [00:01<00:00,  1.89s/it]\n"
     ]
    }
   ],
   "source": [
    "# 6.1.3 top30模块点击页面数统计量特征\n",
    "def gen_mb_all_join_op_unique_features_by_days(df_train, df_test):\n",
    "    def get_days_to_now(df):\n",
    "        df[\"mb_pageview_dtl_OPERATION_DATE\"] = pd.to_datetime(df[\"mb_pageview_dtl_OPERATION_DATE\"], format=\"%Y%m%d\")\n",
    "        df_months_to_now = (df[\"mb_pageview_dtl_OPERATION_DATE\"].max() - df[\"mb_pageview_dtl_OPERATION_DATE\"]).dt.days\n",
    "        df[\"date_months_to_now\"] = df_months_to_now // 31  # 距今月数\n",
    "        df[\"date_weeks_to_now\"] = df_months_to_now // 7  # 距今周数\n",
    "        df[\"date_days_to_now\"] = df_months_to_now  # 距今天数   \n",
    "        \n",
    "        return df\n",
    "\n",
    "    def gen_mb_join_op_unique_features_by_days(df_feature, df_page):\n",
    "        # 1 每月top30模块按天/交易代码聚合：取训练集前60点击模块/页面，用于分组统计\n",
    "        df_page.loc[~df_page['mb_pageview_dtl_MODEL_NAME'].isin([\n",
    "            '6bb41067851861502c74edd3b31005ae', '7619f114489310d42a8e28428ca63365',\n",
    "            'a780b0fb118f24e312c529fa155a9842', 'e1db7167ba7354e6f7726a826157b01d',\n",
    "            'b3ab3a75ec639b57bcfa5464d2beb2e3', 'c99a39f3c62ae02128cdb0acf5c1d2dd',\n",
    "            'e0cb9e3e71029836e967b79c6142f269', '2cadedba80c7b47479e07f67c2f7a02b',\n",
    "            '5a4f90c9f6e5be172c819bc65ee73d09', 'cd17e55565660174030893770260f7c8',\n",
    "            '20ff69117c3ad03a177cb47b7a3d6966', 'f140855f513dcf75e3b455684351fbe6',\n",
    "            'a72547450932263fae5aff76dc29ef1f', '28320f537e764e13b36492518aeebb10',\n",
    "            'bade81e9cdfd1389dfa9df5118b258d3', '523ee61f203b6af0d2e50805b7dc61b5',\n",
    "            'c1b479511ffd01f6e9f3ccf238311999', 'fe701532ade40d76bf1e550ac32dbd8c',\n",
    "            '88db44359c053d1989c43c0e69652975', '7c42e1852b5a3fa3b0bbc1fff431958c',\n",
    "            '69cdc714cc82357d6d14131061e80227', '3c6673e80b4f74dab2ce27530ae393e4',\n",
    "            '25d754f6b857dc6cabe02b263a4fa697', '05b5906aa7a7ef64195ca4f243853047',\n",
    "            '88d83f7e86e003079b222181b5d1b194', '4e7c58f42884ce032919b92a08c9fc99',\n",
    "            '09978ce4d848c0ac52556012354ea4db', '74906157273559b39569e8b700f1dd22',\n",
    "            'a3540cb52f999506df3147b758612733', \n",
    "            # 'd26448f9e42a1681b56a3011a4f78894'\n",
    "        ]), 'mb_pageview_dtl_MODEL_NAME'] = 'other'\n",
    "        df_page = df_page[df_page['mb_pageview_dtl_MODEL_NAME'] != 'other']\n",
    "        \n",
    "        \"\"\" 2 页面/模块拼接分组点击数趋势 \"\"\"\n",
    "        # 2.1 每日top60模块拼接下，页面拼接点击数趋势\n",
    "        df_feature, _ = get_all_id_category_features(\n",
    "                        df_feature, df_page, fea1='mb_pageview_dtl_MODEL_NAME', fea2='mb_pageview_dtl_REFERRER_TITLE_text',\n",
    "                        stats=['nunique']\n",
    "                    ) \n",
    "\n",
    "        \"\"\" 3 每月日点击数/日点击页面数最大天距今天数 \"\"\"\n",
    "        df_feature = get_max_cnt_days_to_now_by_model(df_feature, df_page)\n",
    "        return df_feature\n",
    "        \n",
    "    def get_max_cnt_days_to_now_by_model(df_feature, df):\n",
    "        # 每月top30模块日点击笔数/日点击页面数最大天距今天数\n",
    "        df1 = df.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", 'mb_pageview_dtl_MODEL_NAME'])[\"mb_pageview_dtl_REFERRER_TITLE_text\"].agg(['nunique'])    \n",
    "        df1 = df1.reset_index()        \n",
    "        df2 = df.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", 'mb_pageview_dtl_MODEL_NAME'])[\"mb_pageview_dtl_REFERRER_TITLE_text\"].agg(['count'])    \n",
    "        df2 = df2.reset_index()\n",
    "\n",
    "        tmp_df_nunique = df1.groupby(['CUST_NO', 'mb_pageview_dtl_MODEL_NAME']).agg({\"nunique\": \"max\"}).reset_index()\n",
    "        tmp_df_nunique = tmp_df_nunique.merge(df1[['CUST_NO', 'mb_pageview_dtl_MODEL_NAME', 'date_days_to_now', 'nunique']], on=[\"CUST_NO\", 'mb_pageview_dtl_MODEL_NAME', 'nunique'], how=\"inner\")\n",
    "        tmp_df_nunique = tmp_df_nunique.groupby(['CUST_NO', 'mb_pageview_dtl_MODEL_NAME'])[\"date_days_to_now\"].min().to_frame(\"max_nunique_days_to_now\").reset_index()  # 取最近一天\n",
    "    \n",
    "        tmp_df_nunique = pd.pivot(data=tmp_df_nunique, index='CUST_NO', columns='mb_pageview_dtl_MODEL_NAME', values='max_nunique_days_to_now')\n",
    "        new_fea_cols = ['_'.join(['CUST_NO', 'max_nunique_days_to_now', str(col)]) for col in tmp_df_nunique.columns]\n",
    "        tmp_df_nunique.columns = new_fea_cols\n",
    "        tmp_df_nunique.reset_index(inplace=True)\n",
    "        \n",
    "        tmp_df_count = df2.groupby(['CUST_NO', 'mb_pageview_dtl_MODEL_NAME']).agg({\"count\": \"max\"}).reset_index()\n",
    "        tmp_df_count = tmp_df_count.merge(df2[['CUST_NO', 'mb_pageview_dtl_MODEL_NAME', 'date_days_to_now', 'count']], on=[\"CUST_NO\", 'mb_pageview_dtl_MODEL_NAME', 'count'], how=\"inner\")\n",
    "        tmp_df_count = tmp_df_count.groupby(['CUST_NO', 'mb_pageview_dtl_MODEL_NAME'])[\"date_days_to_now\"].min().to_frame(\"max_count_days_to_now\").reset_index()  # 取最近一天\n",
    "    \n",
    "        tmp_df_count = pd.pivot(data=tmp_df_count, index='CUST_NO', columns='mb_pageview_dtl_MODEL_NAME', values='max_count_days_to_now')\n",
    "        new_fea_cols = ['_'.join(['CUST_NO', 'max_count_days_to_now', str(col)]) for col in tmp_df_count.columns]\n",
    "        tmp_df_count.columns = new_fea_cols\n",
    "        tmp_df_count.reset_index(inplace=True)\n",
    "\n",
    "        df_feature = df_feature.merge(tmp_df_nunique, on=\"CUST_NO\", how=\"left\")\n",
    "        df_feature = df_feature.merge(tmp_df_count, on=\"CUST_NO\", how=\"left\")\n",
    "            \n",
    "        return df_feature\n",
    "        \n",
    "    feature_train = df_train[[\"CUST_NO\"]].drop_duplicates(['CUST_NO']).copy().reset_index(drop=True)\n",
    "    feature_test = df_test[[\"CUST_NO\"]].drop_duplicates(['CUST_NO']).copy().reset_index(drop=True)\n",
    "    \n",
    "    # 1.1 日期转换\n",
    "    df_train = get_days_to_now(df_train).copy()\n",
    "    df_test = get_days_to_now(df_test).copy()\n",
    "\n",
    "    # 2 点击模块拼接\n",
    "    # 2.1 训练集\n",
    "    df_page_train = df_train[['CUST_NO', 'mb_pageview_dtl_MODEL_NAME', 'mb_pageview_dtl_REFERRER_TITLE', 'mb_pageview_dtl_PAGE_TITLE',                \n",
    "        'date_days_to_now', \"date_weeks_to_now\", 'date_months_to_now']].copy()\n",
    "    df_page_train['mb_pageview_dtl_REFERRER_TITLE_text'] = df_train['mb_pageview_dtl_PAGE_TITLE'].astype(str) + '_' + df_train['mb_pageview_dtl_REFERRER_TITLE'].astype(str)\n",
    "    \n",
    "    # 2.2 测试集\n",
    "    df_page_test = df_test[['CUST_NO', 'mb_pageview_dtl_MODEL_NAME', 'mb_pageview_dtl_REFERRER_TITLE', 'mb_pageview_dtl_PAGE_TITLE', \n",
    "        'date_days_to_now', \"date_weeks_to_now\", 'date_months_to_now']].copy()\n",
    "    df_page_test['mb_pageview_dtl_REFERRER_TITLE_text'] = df_test['mb_pageview_dtl_PAGE_TITLE'].astype(str) + '_' + df_test['mb_pageview_dtl_REFERRER_TITLE'].astype(str)\n",
    "\n",
    "    # 2.3 筛选共有点击页面记录\n",
    "    common_word_page = set(df_page_train[\"mb_pageview_dtl_REFERRER_TITLE_text\"]).intersection(set(df_page_test[\"mb_pageview_dtl_REFERRER_TITLE_text\"]))\n",
    "    df_page_train = df_page_train[df_page_train['mb_pageview_dtl_REFERRER_TITLE_text'].isin(common_word_page)].copy()\n",
    "    df_page_test = df_page_test[df_page_test['mb_pageview_dtl_REFERRER_TITLE_text'].isin(common_word_page)].copy()\n",
    "    print('len(common_word_page): {}'.format(len(common_word_page)))\n",
    "\n",
    "    # 4 模块/页面拼接分组统计\n",
    "    feature_train = gen_mb_join_op_unique_features_by_days(feature_train, df_page_train)\n",
    "    feature_test = gen_mb_join_op_unique_features_by_days(feature_test, df_page_test)\n",
    "\n",
    "    return feature_train, feature_test\n",
    "\n",
    "mb_join_op_unique_feature_train, mb_join_op_unique_feature_test = gen_mb_all_join_op_unique_features_by_days(mb_pageview_dtl_train, mb_pageview_dtl_test_a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "6cc19c1c-db2f-40a8-9f9a-95679aeedb55",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:36:21.858149Z",
     "iopub.status.busy": "2024-11-13T07:36:21.857676Z",
     "iopub.status.idle": "2024-11-13T07:36:21.959495Z",
     "msg_id": "f9b5ac72-5178-46d6-9c8b-c131f77b4b85",
     "shell.execute_reply": "2024-11-13T07:36:21.958720Z",
     "shell.execute_reply.started": "2024-11-13T07:36:21.858117Z"
    }
   },
   "outputs": [],
   "source": [
    "pkl_name = './feature/20241101_mb_join_op_unique_A.pkl'\n",
    "if os.path.exists(pkl_name):\n",
    "    with open(pkl_name, 'rb') as f:\n",
    "        mb_join_op_unique_feature_train, mb_join_op_unique_feature_test = pickle.load(f) \n",
    "else:\n",
    "    # 保存特征\n",
    "    with open(pkl_name, 'wb') as f:\n",
    "        pickle.dump([mb_join_op_unique_feature_train, mb_join_op_unique_feature_test], f)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "2877020f-bbab-4966-a6fb-4766aa6dc82f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:36:22.024701Z",
     "iopub.status.busy": "2024-11-13T07:36:22.024271Z",
     "iopub.status.idle": "2024-11-13T07:39:18.532563Z",
     "msg_id": "272ae7a9-12f7-4406-9c54-783e2760b5a0",
     "shell.execute_reply": "2024-11-13T07:39:18.531729Z",
     "shell.execute_reply.started": "2024-11-13T07:36:22.024670Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "begin train word2vec\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_1737922/3198144626.py:14: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[col2] = data[col2].astype(str)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    6631348\n",
      "2    5884574\n",
      "1    5691047\n",
      "Name: date_months_to_now, dtype: int64\n",
      "                            CUST_NO  date_months_to_now  \\\n",
      "0  0000436ed9d65dd70f8ccc904947595e                   0   \n",
      "1  0000436ed9d65dd70f8ccc904947595e                   1   \n",
      "2  0000436ed9d65dd70f8ccc904947595e                   2   \n",
      "3  00005a3b6d6ad8a3624d07622caf2c3f                   0   \n",
      "4  00005a3b6d6ad8a3624d07622caf2c3f                   1   \n",
      "\n",
      "            mb_pageview_dtl_REFERRER_MDDEL_NAME_text  \n",
      "0  [6bb41067851861502c74edd3b31005ae_6bb410678518...  \n",
      "1  [7619f114489310d42a8e28428ca63365_7619f1144893...  \n",
      "2  [7619f114489310d42a8e28428ca63365_a780b0fb118f...  \n",
      "3  [a780b0fb118f24e312c529fa155a9842_6bb410678518...  \n",
      "4  [7619f114489310d42a8e28428ca63365_7619f1144893...  \n",
      "150646\n",
      "39\n",
      "load model\n",
      "begin make feature\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 150646/150646 [01:22<00:00, 1834.41it/s]\n"
     ]
    }
   ],
   "source": [
    "# 6.2.1 操作模块Word2Vec特征\n",
    "import os\n",
    "import random\n",
    "from gensim.models import Word2Vec\n",
    "def set_seed(seed=2020):\n",
    "    random.seed(seed)\n",
    "    os.environ['PYTHONHASHSEED'] = str(seed)\n",
    "    np.random.seed(seed)\n",
    "set_seed(2020)\n",
    "\n",
    "def get_w2v_feature(data, col1, col2, emb_size, type_, ext, feature=[]):\n",
    "    print('begin train word2vec')\n",
    "    data = data[col1 +[col2]]\n",
    "    data[col2] = data[col2].astype(str)\n",
    "    print(data['date_months_to_now'].value_counts())\n",
    "    \n",
    "    tmp = data.groupby(col1)[col2].apply(lambda x:list(x)).reset_index()\n",
    "    sentences = tmp[col2].values.tolist()\n",
    "    print(tmp.head())\n",
    "    print(len(sentences))\n",
    "    print(len(sentences[0]))\n",
    "    del tmp[col2]\n",
    "    \n",
    "    if os.path.exists('./feature/{}_{}_feature{}_{}.model'.format('_'.join(col1),col2, ext, type_)):\n",
    "        print(\"load model\")\n",
    "        model = Word2Vec.load('./feature/{}_{}_feature{}_{}.model'.format('_'.join(col1),col2, ext, type_))\n",
    "        \n",
    "    else:\n",
    "        \n",
    "        print(\"new model\")\n",
    "        model = Word2Vec(sentences, vector_size=emb_size, window=10, min_count=1, sg=1, seed=42, epochs=10, workers=1)\n",
    "        model.save('./feature/{}_{}_feature{}_{}.model'.format('_'.join(col1),col2, ext, type_))\n",
    "    emb_matrix = []\n",
    "    emb_dict = {}\n",
    "    \n",
    "    # CUST_NO不重复\n",
    "    print('begin make feature')\n",
    "    for seq in tqdm(sentences):\n",
    "        vec = []\n",
    "        for w in seq:\n",
    "            vocab = model.wv\n",
    "            if w in vocab:\n",
    "                vec.append(vocab[w])  # 句矩阵\n",
    "                emb_dict[w] = vocab[w]  # 词汇矩阵\n",
    "        if len(vec) > 0:\n",
    "            emb_matrix.append(np.mean(vec, axis=0))  # 求平均\n",
    "        else:\n",
    "            emb_matrix.append([0] * emb_size)  # model中没有则填0\n",
    "            \n",
    "    emb_matrix = np.array(emb_matrix)\n",
    "    for i in range(emb_size):\n",
    "        tmp['{}_{}_emb_{}_{}'.format('_'.join(col1), col2, i, ext)] = emb_matrix[:, i] # 每一列单独赋值 成特征\n",
    "        feature.append('{}_{}_emb_{}_{}'.format('_'.join(col1), col2, i,ext))\n",
    "    del model, emb_matrix, sentences\n",
    "    \n",
    "    return tmp, feature\n",
    "\n",
    "def gen_embed(df_train, df_test, abstract):\n",
    "\n",
    "    def get_days_to_now(df):\n",
    "        df[\"mb_pageview_dtl_OPERATION_DATE\"] = pd.to_datetime(df[\"mb_pageview_dtl_OPERATION_DATE\"], format=\"%Y%m%d\")\n",
    "        df_months_to_now = (df[\"mb_pageview_dtl_OPERATION_DATE\"].max() - df[\"mb_pageview_dtl_OPERATION_DATE\"]).dt.days\n",
    "        df[\"date_months_to_now\"] = df_months_to_now // 31  # 距今月数\n",
    "        df[\"date_weeks_to_now\"] = df_months_to_now // 7  # 距今周数\n",
    "        df[\"date_days_to_now\"] = df_months_to_now  # 距今天数\n",
    "        \n",
    "        return df\n",
    "    \n",
    "    # 日期转换\n",
    "    df_train = get_days_to_now(df_train)\n",
    "    df_test = get_days_to_now(df_test)\n",
    "\n",
    "    # 上一个操作模块\n",
    "    df = pd.concat([df_train, df_test], axis=0)\n",
    "    df = df[['mb_pageview_dtl_MODEL_NAME','mb_pageview_dtl_PAGE_TITLE']].drop_duplicates()\n",
    "    page2model_dict = dict(zip(df['mb_pageview_dtl_PAGE_TITLE'], df['mb_pageview_dtl_MODEL_NAME']))\n",
    "    df_train['mb_pageview_dtl_REFERRER_MDDEL_NAME'] = df_train['mb_pageview_dtl_REFERRER_TITLE'].map(page2model_dict)\n",
    "    df_test['mb_pageview_dtl_REFERRER_MDDEL_NAME'] = df_test['mb_pageview_dtl_REFERRER_TITLE'].map(page2model_dict)\n",
    "\n",
    "    temp1 = df_train[['CUST_NO', 'mb_pageview_dtl_REFERRER_MDDEL_NAME', 'mb_pageview_dtl_MODEL_NAME', 'date_months_to_now']].copy()\n",
    "    temp2 = df_test[['CUST_NO', 'mb_pageview_dtl_REFERRER_MDDEL_NAME', 'mb_pageview_dtl_MODEL_NAME', 'date_months_to_now']].copy()\n",
    "\n",
    "    # 文本拼接\n",
    "    temp1['mb_pageview_dtl_REFERRER_MDDEL_NAME_text'] = df_train['mb_pageview_dtl_REFERRER_MDDEL_NAME'].astype(str) + '_' + df_train['mb_pageview_dtl_MODEL_NAME'].astype(str)\n",
    "    temp2['mb_pageview_dtl_REFERRER_MDDEL_NAME_text'] = df_test['mb_pageview_dtl_REFERRER_MDDEL_NAME'].astype(str) + '_' + df_test['mb_pageview_dtl_MODEL_NAME'].astype(str)\n",
    "    common_word = set(temp1[\"mb_pageview_dtl_REFERRER_MDDEL_NAME_text\"]).intersection(set(temp2[\"mb_pageview_dtl_REFERRER_MDDEL_NAME_text\"]))\n",
    "    \n",
    "    # 训练测试通用词\n",
    "    # print(common_word)\n",
    "    temp1 = temp1[temp1['mb_pageview_dtl_REFERRER_MDDEL_NAME_text'].isin(common_word)]\n",
    "    temp2 = temp2[temp2['mb_pageview_dtl_REFERRER_MDDEL_NAME_text'].isin(common_word)]\n",
    "    temp = pd.concat([temp1, temp2], axis=0)\n",
    "    # print(temp)\n",
    "\n",
    "    # 按月份获取词向量\n",
    "    df_temp, feature = get_w2v_feature(temp, ['CUST_NO', 'date_months_to_now'], 'mb_pageview_dtl_REFERRER_MDDEL_NAME_text', 32, abstract, ext='32', feature=[])\n",
    "    temp_month_1 = df_temp[df_temp['date_months_to_now'] == 0].reset_index(drop = True)\n",
    "    del temp_month_1['date_months_to_now']\n",
    "    temp_month_1.columns = ['CUST_NO'] + [f + '_First' for f in temp_month_1.columns if f not in ['CUST_NO', 'date_months_to_now']]\n",
    "\n",
    "    temp_month_2 = df_temp[df_temp['date_months_to_now'] == 1].reset_index(drop = True)\n",
    "    del temp_month_2['date_months_to_now']\n",
    "    temp_month_2.columns = ['CUST_NO'] + [f + '_Second' for f in temp_month_2.columns if f not in ['CUST_NO', 'date_months_to_now']]\n",
    "\n",
    "    temp_month_3 = df_temp[df_temp['date_months_to_now'] == 2].reset_index(drop = True)\n",
    "    \n",
    "    del temp_month_3['date_months_to_now']\n",
    "    temp_month_3.columns = ['CUST_NO'] + [f + '_Third' for f in temp_month_3.columns if f not in ['CUST_NO', 'date_months_to_now']]\n",
    "\n",
    "    return temp_month_1, temp_month_2, temp_month_3\n",
    "    \n",
    "\n",
    "mb_model_embed_month_1, mb_model_embed_month_2, mb_model_embed_month_3 = gen_embed(mb_pageview_dtl_train, mb_pageview_dtl_test_a, \"train_A\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "a71cd3ca-d65f-466a-b6d2-74756f5bedd3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:39:18.534450Z",
     "iopub.status.busy": "2024-11-13T07:39:18.534058Z",
     "iopub.status.idle": "2024-11-13T07:39:18.604096Z",
     "msg_id": "8d4f7ff0-8a71-482d-b101-95e15ad0751e",
     "shell.execute_reply": "2024-11-13T07:39:18.603368Z",
     "shell.execute_reply.started": "2024-11-13T07:39:18.534420Z"
    }
   },
   "outputs": [],
   "source": [
    "pkl_name = './feature/20241028_w2v_mbOpModel_A.pkl'\n",
    "if os.path.exists(pkl_name):\n",
    "    with open(pkl_name, 'rb') as f:\n",
    "        mb_model_embed_month_1, mb_model_embed_month_2, mb_model_embed_month_3 = pickle.load(f)\n",
    "else:\n",
    "    # 保存特征\n",
    "    with open(pkl_name, 'wb') as f:\n",
    "        pickle.dump([mb_model_embed_month_1, mb_model_embed_month_2, mb_model_embed_month_3], f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b8a51229-88dc-4127-a4c4-9467c2b88cf8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:39:18.605665Z",
     "iopub.status.busy": "2024-11-13T07:39:18.605166Z",
     "iopub.status.idle": "2024-11-13T07:41:59.970512Z",
     "msg_id": "3f06fb0a-7cea-4dd2-8a99-001f04bd291a",
     "shell.execute_reply": "2024-11-13T07:41:59.969576Z",
     "shell.execute_reply.started": "2024-11-13T07:39:18.605638Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "begin train word2vec\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_1737922/2464529764.py:14: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[col2] = data[col2].astype(str)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    6585066\n",
      "2    5850610\n",
      "1    5658252\n",
      "Name: date_months_to_now, dtype: int64\n",
      "                            CUST_NO  date_months_to_now  \\\n",
      "0  0000436ed9d65dd70f8ccc904947595e                   0   \n",
      "1  0000436ed9d65dd70f8ccc904947595e                   1   \n",
      "2  0000436ed9d65dd70f8ccc904947595e                   2   \n",
      "3  00005a3b6d6ad8a3624d07622caf2c3f                   0   \n",
      "4  00005a3b6d6ad8a3624d07622caf2c3f                   1   \n",
      "\n",
      "                 mb_pageview_dtl_REFERRER_TITLE_text  \n",
      "0  [3f54b3d12dcecc882dccfd4e422360f2_c36a4b6527a8...  \n",
      "1  [6bb41067851861502c74edd3b31005ae_428a1709f794...  \n",
      "2  [99e968a9ee67ca8a825870088c1ea915_769dab657beb...  \n",
      "3  [8f8869df6bf7afd348c625dc682dbbce_99e968a9ee67...  \n",
      "4  [fb05b0d0036d613437aefd9b83e6e01f_769dab657beb...  \n",
      "150645\n",
      "39\n",
      "load model\n",
      "begin make feature\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 150645/150645 [01:24<00:00, 1778.42it/s]\n"
     ]
    }
   ],
   "source": [
    "# 6.2.2 操作页面Word2Vec特征\n",
    "import os\n",
    "import random\n",
    "from gensim.models import Word2Vec\n",
    "def set_seed(seed=2020):\n",
    "    random.seed(seed)\n",
    "    os.environ['PYTHONHASHSEED'] = str(seed)\n",
    "    np.random.seed(seed)\n",
    "set_seed(2020)\n",
    "\n",
    "def get_w2v_feature(data, col1, col2, emb_size, type_, ext, feature=[]):\n",
    "    print('begin train word2vec')\n",
    "    data = data[col1 +[col2]]\n",
    "    data[col2] = data[col2].astype(str)\n",
    "    print(data['date_months_to_now'].value_counts())\n",
    "    \n",
    "    tmp = data.groupby(col1)[col2].apply(lambda x:list(x)).reset_index()\n",
    "    sentences = tmp[col2].values.tolist()\n",
    "    print(tmp.head())\n",
    "    print(len(sentences))\n",
    "    print(len(sentences[0]))\n",
    "    del tmp[col2]\n",
    "    \n",
    "    if os.path.exists('./feature/{}_{}_feature{}_{}.model'.format('_'.join(col1),col2, ext, type_)):\n",
    "        print(\"load model\")\n",
    "        model = Word2Vec.load('./feature/{}_{}_feature{}_{}.model'.format('_'.join(col1),col2, ext, type_))\n",
    "        \n",
    "    else:\n",
    "        print(\"new model\")\n",
    "        model = Word2Vec(sentences, vector_size=emb_size, window=10, min_count=1, sg=1, seed=42, epochs=10, workers=1)\n",
    "        model.save('./feature/{}_{}_feature{}_{}.model'.format('_'.join(col1),col2, ext, type_))\n",
    "    emb_matrix = []\n",
    "    emb_dict = {}\n",
    "    \n",
    "    # CUST_NO不重复\n",
    "    print('begin make feature')\n",
    "    for seq in tqdm(sentences):\n",
    "        vec = []\n",
    "        for w in seq:\n",
    "            vocab = model.wv\n",
    "            if w in vocab:\n",
    "                vec.append(vocab[w])  # 句矩阵\n",
    "                emb_dict[w] = vocab[w]  # 词汇矩阵\n",
    "        if len(vec) > 0:\n",
    "            emb_matrix.append(np.mean(vec, axis=0))  # 求平均\n",
    "        else:\n",
    "            emb_matrix.append([0] * emb_size)  # model中没有则填0\n",
    "            \n",
    "    emb_matrix = np.array(emb_matrix)\n",
    "    for i in range(emb_size):\n",
    "        tmp['{}_{}_emb_{}_{}'.format('_'.join(col1), col2, i, ext)] = emb_matrix[:, i] # 每一列单独赋值 成特征\n",
    "        feature.append('{}_{}_emb_{}_{}'.format('_'.join(col1), col2, i,ext))\n",
    "    del model, emb_matrix, sentences\n",
    "    \n",
    "    return tmp, feature\n",
    "\n",
    "def gen_embed(df_train, df_test, abstract):\n",
    "\n",
    "    def get_days_to_now(df):\n",
    "        df[\"mb_pageview_dtl_OPERATION_DATE\"] = pd.to_datetime(df[\"mb_pageview_dtl_OPERATION_DATE\"], format=\"%Y%m%d\")\n",
    "        df_months_to_now = (df[\"mb_pageview_dtl_OPERATION_DATE\"].max() - df[\"mb_pageview_dtl_OPERATION_DATE\"]).dt.days\n",
    "        df[\"date_months_to_now\"] = df_months_to_now // 31  # 距今月数\n",
    "        df[\"date_weeks_to_now\"] = df_months_to_now // 7  # 距今周数\n",
    "        df[\"date_days_to_now\"] = df_months_to_now  # 距今天数\n",
    "        \n",
    "        return df\n",
    "    \n",
    "    # 日期转换\n",
    "    df_train = get_days_to_now(df_train)\n",
    "    df_test = get_days_to_now(df_test)\n",
    "\n",
    "    temp1 = df_train[['CUST_NO', 'mb_pageview_dtl_REFERRER_TITLE', 'mb_pageview_dtl_PAGE_TITLE', 'date_months_to_now']].copy()\n",
    "    temp2 = df_test[['CUST_NO', 'mb_pageview_dtl_REFERRER_TITLE', 'mb_pageview_dtl_PAGE_TITLE', 'date_months_to_now']].copy()\n",
    "\n",
    "    # 文本拼接\n",
    "    temp1['mb_pageview_dtl_REFERRER_TITLE_text'] = df_train['mb_pageview_dtl_PAGE_TITLE'].astype(str) + '_' + df_train['mb_pageview_dtl_REFERRER_TITLE'].astype(str)\n",
    "    temp2['mb_pageview_dtl_REFERRER_TITLE_text'] = df_test['mb_pageview_dtl_PAGE_TITLE'].astype(str) + '_' + df_test['mb_pageview_dtl_REFERRER_TITLE'].astype(str)\n",
    "    common_word = set(temp1[\"mb_pageview_dtl_REFERRER_TITLE_text\"]).intersection(set(temp2[\"mb_pageview_dtl_REFERRER_TITLE_text\"]))\n",
    "    \n",
    "    # 训练测试通用词\n",
    "    # print(common_word)\n",
    "    temp1 = temp1[temp1['mb_pageview_dtl_REFERRER_TITLE_text'].isin(common_word)]\n",
    "    temp2 = temp2[temp2['mb_pageview_dtl_REFERRER_TITLE_text'].isin(common_word)]\n",
    "    temp = pd.concat([temp1, temp2], axis=0)\n",
    "    # print(temp)\n",
    "\n",
    "    # 按月份获取词向量\n",
    "    df_temp, feature = get_w2v_feature(temp, ['CUST_NO', 'date_months_to_now'], 'mb_pageview_dtl_REFERRER_TITLE_text', 32, abstract, ext='32', feature=[])\n",
    "    temp_month_1 = df_temp[df_temp['date_months_to_now'] == 0].reset_index(drop = True)\n",
    "    del temp_month_1['date_months_to_now']\n",
    "    temp_month_1.columns = ['CUST_NO'] + [f + '_First' for f in temp_month_1.columns if f not in ['CUST_NO', 'date_months_to_now']]\n",
    "\n",
    "    temp_month_2 = df_temp[df_temp['date_months_to_now'] == 1].reset_index(drop = True)\n",
    "    del temp_month_2['date_months_to_now']\n",
    "    temp_month_2.columns = ['CUST_NO'] + [f + '_Second' for f in temp_month_2.columns if f not in ['CUST_NO', 'date_months_to_now']]\n",
    "\n",
    "    temp_month_3 = df_temp[df_temp['date_months_to_now'] == 2].reset_index(drop = True)\n",
    "    del temp_month_3['date_months_to_now']\n",
    "    temp_month_3.columns = ['CUST_NO'] + [f + '_Third' for f in temp_month_3.columns if f not in ['CUST_NO', 'date_months_to_now']]\n",
    "\n",
    "    return temp_month_1, temp_month_2, temp_month_3\n",
    "    \n",
    "\n",
    "mb_embed_month_1, mb_embed_month_2, mb_embed_month_3 = gen_embed(mb_pageview_dtl_train, mb_pageview_dtl_test_a, \"train_A\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "3d1f8a61-2762-48ff-a4b5-4d983a3821e1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:41:59.973150Z",
     "iopub.status.busy": "2024-11-13T07:41:59.972711Z",
     "iopub.status.idle": "2024-11-13T07:42:00.050044Z",
     "msg_id": "18df1852-d3ca-4291-8fff-e9d77e9c892a",
     "shell.execute_reply": "2024-11-13T07:42:00.049190Z",
     "shell.execute_reply.started": "2024-11-13T07:41:59.973118Z"
    }
   },
   "outputs": [],
   "source": [
    "pkl_name = './feature/20241028_w2v_A.pkl'\n",
    "if os.path.exists(pkl_name):\n",
    "    with open(pkl_name, 'rb') as f:\n",
    "        mb_embed_month_1, mb_embed_month_2, mb_embed_month_3 = pickle.load(f)\n",
    "else:\n",
    "    # 保存特征\n",
    "    with open(pkl_name, 'wb') as f:\n",
    "        pickle.dump([mb_embed_month_1, mb_embed_month_2, mb_embed_month_3], f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "4f090f70-040d-4771-92a4-a91263d18a14",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:42:00.051853Z",
     "iopub.status.busy": "2024-11-13T07:42:00.051566Z",
     "iopub.status.idle": "2024-11-13T07:48:39.625395Z",
     "msg_id": "a12f1510-67ac-438a-95bc-4fab53eec6ce",
     "shell.execute_reply": "2024-11-13T07:48:39.624617Z",
     "shell.execute_reply.started": "2024-11-13T07:42:00.051828Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 12%|█▎        | 1/8 [00:00<00:04,  1.43it/s]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:01<00:04,  1.42it/s]\u001b[A\n",
      " 38%|███▊      | 3/8 [00:02<00:03,  1.42it/s]\u001b[A\n",
      " 50%|█████     | 4/8 [00:02<00:02,  1.38it/s]\u001b[A\n",
      " 62%|██████▎   | 5/8 [00:03<00:02,  1.39it/s]\u001b[A\n",
      " 75%|███████▌  | 6/8 [00:04<00:01,  1.40it/s]\u001b[A\n",
      " 88%|████████▊ | 7/8 [00:28<00:08,  8.41s/it]\u001b[A\n",
      "100%|██████████| 8/8 [00:50<00:00,  6.35s/it]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.47it/s]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:03<00:00,  3.23s/it]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:03<00:00,  3.20s/it]\u001b[A\n",
      "100%|██████████| 1/1 [00:57<00:00, 57.94s/it]\n",
      "100%|██████████| 3/3 [00:00<00:00, 146.27it/s]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 12%|█▎        | 1/8 [00:01<00:08,  1.26s/it]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:02<00:07,  1.20s/it]\u001b[A\n",
      " 38%|███▊      | 3/8 [00:03<00:05,  1.17s/it]\u001b[A\n",
      " 50%|█████     | 4/8 [00:04<00:04,  1.20s/it]\u001b[A\n",
      " 62%|██████▎   | 5/8 [00:06<00:03,  1.22s/it]\u001b[A\n",
      " 75%|███████▌  | 6/8 [00:07<00:02,  1.21s/it]\u001b[A\n",
      " 88%|████████▊ | 7/8 [00:40<00:11, 11.81s/it]\u001b[A\n",
      "100%|██████████| 8/8 [01:11<00:00,  8.92s/it]\u001b[A\n",
      "100%|██████████| 1/1 [01:11<00:00, 71.35s/it]\n",
      "100%|██████████| 1/1 [00:02<00:00,  2.37s/it]\n",
      "100%|██████████| 39/39 [00:14<00:00,  2.73it/s]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 12%|█▎        | 1/8 [00:00<00:04,  1.62it/s]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:01<00:03,  1.63it/s]\u001b[A\n",
      " 38%|███▊      | 3/8 [00:01<00:03,  1.62it/s]\u001b[A\n",
      " 50%|█████     | 4/8 [00:02<00:02,  1.57it/s]\u001b[A\n",
      " 62%|██████▎   | 5/8 [00:03<00:01,  1.59it/s]\u001b[A\n",
      " 75%|███████▌  | 6/8 [00:03<00:01,  1.60it/s]\u001b[A\n",
      " 88%|████████▊ | 7/8 [00:28<00:08,  8.57s/it]\u001b[A\n",
      "100%|██████████| 8/8 [00:51<00:00,  6.46s/it]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.72it/s]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:03<00:00,  3.95s/it]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:03<00:00,  3.93s/it]\u001b[A\n",
      "100%|██████████| 1/1 [01:00<00:00, 60.11s/it]\n",
      "100%|██████████| 3/3 [00:00<00:00, 150.18it/s]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 12%|█▎        | 1/8 [00:01<00:07,  1.08s/it]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:02<00:06,  1.06s/it]\u001b[A\n",
      " 38%|███▊      | 3/8 [00:03<00:05,  1.06s/it]\u001b[A\n",
      " 50%|█████     | 4/8 [00:04<00:04,  1.09s/it]\u001b[A\n",
      " 62%|██████▎   | 5/8 [00:05<00:03,  1.09s/it]\u001b[A\n",
      " 75%|███████▌  | 6/8 [00:06<00:02,  1.09s/it]\u001b[A\n",
      " 88%|████████▊ | 7/8 [00:39<00:11, 11.52s/it]\u001b[A\n",
      "100%|██████████| 8/8 [01:09<00:00,  8.68s/it]\u001b[A\n",
      "100%|██████████| 1/1 [01:09<00:00, 69.44s/it]\n",
      "100%|██████████| 1/1 [00:02<00:00,  2.87s/it]\n",
      "100%|██████████| 39/39 [00:14<00:00,  2.61it/s]\n",
      "100%|██████████| 3/3 [00:06<00:00,  2.26s/it]\n",
      "100%|██████████| 3/3 [00:08<00:00,  2.86s/it]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:00<00:00, 19.85it/s]\u001b[A\n",
      " 62%|██████▎   | 5/8 [00:00<00:00, 21.34it/s]\u001b[A\n",
      "100%|██████████| 8/8 [00:04<00:00,  1.62it/s]\u001b[A\n",
      "\n",
      "100%|██████████| 1/1 [00:00<00:00, 17.94it/s]\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:00<00:00,  5.19it/s]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:00<00:00,  5.30it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:05<00:00,  5.39s/it]\n",
      "100%|██████████| 3/3 [00:00<00:00, 291.64it/s]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:00<00:00, 11.62it/s]\u001b[A\n",
      " 50%|█████     | 4/8 [00:00<00:00, 11.65it/s]\u001b[A\n",
      " 75%|███████▌  | 6/8 [00:00<00:00, 11.60it/s]\u001b[A\n",
      "100%|██████████| 8/8 [00:07<00:00,  1.14it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:07<00:00,  7.01s/it]\n",
      "100%|██████████| 1/1 [00:00<00:00,  6.43it/s]\n",
      "100%|██████████| 34/34 [00:00<00:00, 43.68it/s]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 38%|███▊      | 3/8 [00:00<00:00, 20.85it/s]\u001b[A\n",
      "100%|██████████| 8/8 [00:05<00:00,  1.56it/s]\u001b[A\n",
      "\n",
      "100%|██████████| 1/1 [00:00<00:00, 17.61it/s]\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:00<00:00,  3.76it/s]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:00<00:00,  3.93it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:05<00:00,  5.72s/it]\n",
      "100%|██████████| 3/3 [00:00<00:00, 293.69it/s]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:00<00:00, 11.63it/s]\u001b[A\n",
      " 50%|█████     | 4/8 [00:00<00:00, 11.86it/s]\u001b[A\n",
      " 75%|███████▌  | 6/8 [00:00<00:00, 12.01it/s]\u001b[A\n",
      "100%|██████████| 8/8 [00:06<00:00,  1.14it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:06<00:00,  7.00s/it]\n",
      "100%|██████████| 1/1 [00:00<00:00,  5.12it/s]\n",
      "100%|██████████| 36/36 [00:00<00:00, 40.52it/s]\n",
      "100%|██████████| 3/3 [00:00<00:00,  7.42it/s]\n",
      "100%|██████████| 3/3 [00:00<00:00,  5.36it/s]\n"
     ]
    }
   ],
   "source": [
    "from copy import deepcopy\n",
    "\n",
    "# 7 活期交易表（GTGSH_TR_APS_DTL）\n",
    "def get_division_features(df1, df2, col1, col2, eps=1e-6):\n",
    "    tmp = pd.merge(df1, df2, how=\"left\", on=\"CUST_NO\")\n",
    "    new_feature_name = '_'.join([col1, \"div\", col2])\n",
    "    tmp[new_feature_name] = tmp[col1] / (tmp[col2] + eps)\n",
    "    feature_name = [\"CUST_NO\", new_feature_name]\n",
    "    return tmp[feature_name]\n",
    "    \n",
    "def get_aps_days_to_now(df):\n",
    "    df[\"date\"] = pd.to_datetime(df[\"APSDTRDAT\"], format=\"%Y%m%d\")\n",
    "    df_months_to_now = (df[\"date\"].max() - df[\"date\"]).dt.days\n",
    "    df[\"date_months_to_now\"] = df_months_to_now // 31  # 距今月数\n",
    "    df[\"date_weeks_to_now\"] = df_months_to_now // 7  # 距今周数\n",
    "    df[\"date_days_to_now\"] = df_months_to_now  # 距今天数\n",
    "    \n",
    "    return df\n",
    "\n",
    "def get_aps_recent_days_to_now(df_tr, month):\n",
    "    # 最近一笔交易距今天数\n",
    "    tmp_df = df_tr.groupby(['CUST_NO'])[\"date_days_to_now\"].min().to_frame(\"recent_days_to_now_{}\".format(str(month))).reset_index()  # 取最近一天\n",
    "    \n",
    "    return tmp_df\n",
    "\n",
    "def get_aps_max_amt_days_to_now(df_tr, month):\n",
    "    # 最大一笔金额距今天数（剔除零值交易）\n",
    "    if df_tr[\"APSDTRAMT\"].max() > 0:\n",
    "        tmp_df = df_tr[df_tr[\"APSDTRAMT\"] > 0].groupby(['CUST_NO']).agg({\"APSDTRAMT\": \"max\"}).reset_index()\n",
    "    else:\n",
    "        tmp_df = df_tr[df_tr[\"APSDTRAMT\"] < 0].groupby(['CUST_NO']).agg({\"APSDTRAMT\": \"min\"}).reset_index()\n",
    "\n",
    "    tmp_df = tmp_df.merge(df_tr[['CUST_NO', 'date_days_to_now', 'APSDTRAMT']], on=[\"CUST_NO\", 'APSDTRAMT'], how=\"inner\")\n",
    "    tmp_df_day = tmp_df.groupby(['CUST_NO'])[\"date_days_to_now\"].min().to_frame(\"max_amt_days_to_now_{}\".format(str(month))).reset_index()  # 取最近一天\n",
    "    tmp_df_amt = tmp_df.groupby(['CUST_NO']).agg({\"APSDTRAMT\": \"max\"}).reset_index()\n",
    "    tmp_df_amt.columns = ['CUST_NO', 'max_absamt_{}'.format(str(month))]\n",
    "\n",
    "    return tmp_df_day, tmp_df_amt\n",
    "\n",
    "def gen_aps_day_features_by_month(df_tr, tr_feature, dual_dir=True, postfix=''): \n",
    "    '''\n",
    "        1 最大一笔流入/流出金额距今天数特征，剔除零值交易\n",
    "        2 最大一笔流入流出金额天数/金额轧差（没有按天聚合）\n",
    "    '''\n",
    "    ## 每月单日最大金额交易距今天数/每月最近一笔交易距每月最大单日金额交易天数    \n",
    "    if dual_dir:\n",
    "        # 单日最大流入金额距今天数\n",
    "        df_tr_in = df_tr[df_tr[\"APSDTRAMT\"]>0]\n",
    "        tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "        for month in tqdm([0, 1, 2]):\n",
    "            df_tr_month = df_tr_in[df_tr_in[\"date_months_to_now\"]==month]\n",
    "            df_max_amt_days_to_now, df_max_amt = get_aps_max_amt_days_to_now(df_tr_month, month)\n",
    "            df_recent_days_to_now = get_aps_recent_days_to_now(df_tr_month, month)\n",
    "            tmp_tr_feature = tmp_tr_feature.merge(df_max_amt_days_to_now, how=\"left\", on=\"CUST_NO\")\n",
    "            tmp_tr_feature = tmp_tr_feature.merge(df_recent_days_to_now, how=\"left\", on=\"CUST_NO\")\n",
    "            tmp_tr_feature = tmp_tr_feature.merge(df_max_amt, how=\"left\", on=\"CUST_NO\")\n",
    "            tmp_tr_feature[\"maxamt_days_to_recent_{}\".format(str(month))] = tmp_tr_feature[\"recent_days_to_now_{}\".format(str(month))] - tmp_tr_feature[\"max_amt_days_to_now_{}\".format(str(month))]\n",
    "        tmp_tr_feature.columns = [\"CUST_NO\"] + [\"{}_{}_{}\".format(col, \"in\", postfix) for col in tmp_tr_feature.columns if col != \"CUST_NO\"]\n",
    "        tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "        \n",
    "        # 单日最大流出金额距今天数\n",
    "        df_tr_out = df_tr[df_tr[\"APSDTRAMT\"]<0]\n",
    "        tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "        for month in tqdm([0, 1, 2]):\n",
    "            df_tr_month = df_tr_out[df_tr_out[\"date_months_to_now\"]==month]\n",
    "            df_max_amt_days_to_now, df_max_amt = get_aps_max_amt_days_to_now(df_tr_month, month)\n",
    "            df_recent_days_to_now = get_aps_recent_days_to_now(df_tr_month, month)\n",
    "            tmp_tr_feature = tmp_tr_feature.merge(df_max_amt_days_to_now, how=\"left\", on=\"CUST_NO\")\n",
    "            tmp_tr_feature = tmp_tr_feature.merge(df_recent_days_to_now, how=\"left\", on=\"CUST_NO\")\n",
    "            tmp_tr_feature = tmp_tr_feature.merge(df_max_amt, how=\"left\", on=\"CUST_NO\")\n",
    "            tmp_tr_feature[\"maxamt_days_to_recent_{}\".format(str(month))] = tmp_tr_feature[\"recent_days_to_now_{}\".format(str(month))] - tmp_tr_feature[\"max_amt_days_to_now_{}\".format(str(month))]\n",
    "        tmp_tr_feature.columns = [\"CUST_NO\"] + [\"{}_{}_{}\".format(col, \"out\", postfix) for col in tmp_tr_feature.columns if col != \"CUST_NO\"]\n",
    "        tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "    \n",
    "        # 流入流出金额天数/金额轧差，特征重要性排名靠后\n",
    "        tr_feature[\"in_out_max_absamt_diff_0_{}\".format(postfix)] = tr_feature[\"max_absamt_0_in_{}\".format(postfix)].abs() - tr_feature[\"max_absamt_0_out_{}\".format(postfix)].abs()\n",
    "        tr_feature[\"in_out_max_absamt_diff_1_{}\".format(postfix)] = tr_feature[\"max_absamt_1_in_{}\".format(postfix)].abs() - tr_feature[\"max_absamt_1_out_{}\".format(postfix)].abs()\n",
    "        tr_feature[\"in_out_max_absamt_diff_2_{}\".format(postfix)] = tr_feature[\"max_absamt_1_in_{}\".format(postfix)].abs() - tr_feature[\"max_absamt_2_out_{}\".format(postfix)].abs()\n",
    "\n",
    "        tr_feature[\"in_out_maxamt_days_diff_0_{}\".format(postfix)] = tr_feature[\"max_amt_days_to_now_0_in_{}\".format(postfix)] - tr_feature[\"max_amt_days_to_now_0_out_{}\".format(postfix)]\n",
    "        tr_feature[\"in_out_maxamt_days_diff_1_{}\".format(postfix)] = tr_feature[\"max_amt_days_to_now_1_in_{}\".format(postfix)] - tr_feature[\"max_amt_days_to_now_1_out_{}\".format(postfix)]\n",
    "        tr_feature[\"in_out_maxamt_days_diff_2_{}\".format(postfix)] = tr_feature[\"max_amt_days_to_now_2_in_{}\".format(postfix)] - tr_feature[\"max_amt_days_to_now_2_out_{}\".format(postfix)]\n",
    "    else:\n",
    "        tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "        for month in tqdm([0, 1, 2]):\n",
    "            df_tr_month = df_tr[df_tr[\"date_months_to_now\"]==month]\n",
    "            df_max_amt_days_to_now, df_max_amt = get_aps_max_amt_days_to_now(df_tr_month, month)\n",
    "            df_recent_days_to_now = get_aps_recent_days_to_now(df_tr_month, month)\n",
    "            tmp_tr_feature = tmp_tr_feature.merge(df_max_amt_days_to_now, how=\"left\", on=\"CUST_NO\")\n",
    "            tmp_tr_feature = tmp_tr_feature.merge(df_recent_days_to_now, how=\"left\", on=\"CUST_NO\")\n",
    "            tmp_tr_feature = tmp_tr_feature.merge(df_max_amt, how=\"left\", on=\"CUST_NO\")\n",
    "            tmp_tr_feature[\"maxamt_days_to_recent_{}_{}\".format(str(month), postfix)] = df_recent_days_to_now[\"recent_days_to_now_{}\".format(str(month))] - df_max_amt_days_to_now[\"max_amt_days_to_now_{}\".format(str(month))]\n",
    "        tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\") \n",
    "        \n",
    "    return tr_feature\n",
    "\n",
    "def gen_aps_features_by_day(df_tr, tr_feature, postfix):\n",
    "    '''\n",
    "        1 流入流出分组处理\n",
    "        2 渠道偏好特征，分母使用各自渠道的转入/转出总笔数（正常交易类特征）\n",
    "        3 最近一笔交易距今天数特征\n",
    "        4 最近一笔交易距每月最大单日金额交易天数特征\n",
    "        5 最大一笔流入流出距今天数\n",
    "    '''\n",
    "    \"\"\" 1 数据预处理 \"\"\"\n",
    "    # 1.1 按天/交易代码聚合金额\n",
    "    df_tr_by_day_cod_amt = df_tr.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", \"APSDTRCOD\", \"APSDTRCHL\"]).agg({\"APSDTRAMT\": \"sum\"}).reset_index()\n",
    "    df_tr_by_day_cod_amt[\"APSDTRAMT\"].fillna(0, inplace=True)\n",
    "    df_tr_by_day = df_tr_by_day_cod_amt.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\"]).agg({\"APSDTRAMT\": \"sum\"}).reset_index() \n",
    "\n",
    "    # 1.2 按天聚合交易代码数\n",
    "    df_tr_by_day_cod_ns = df_tr.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", \"APSDTRCOD\"])[\"APSDTRCOD\"].agg(['nunique', 'count'])\n",
    "    df_tr_by_day_cod_ns.columns = ['nunique', 'count']\n",
    "    df_tr_by_day_cod_ns = df_tr_by_day_cod_ns.reset_index()\n",
    "    df_tr_by_day_cod = df_tr_by_day_cod_ns.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\"])[['nunique', 'count']].agg(\"sum\").reset_index() \n",
    "\n",
    "    # 1.3 按天聚合交易渠道数\n",
    "    df_tr_by_day_chl_ns = df_tr.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", \"APSDTRCHL\"])[\"APSDTRCHL\"].agg(['nunique', 'count'])\n",
    "    df_tr_by_day_chl_ns.columns = ['nunique', 'count']\n",
    "    df_tr_by_day_chl_ns = df_tr_by_day_chl_ns.reset_index()\n",
    "    df_tr_by_day_chl = df_tr_by_day_chl_ns.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\"])[['nunique', 'count']].agg(\"sum\").reset_index() \n",
    "\n",
    "    \"\"\"\" 2 滑窗 \"\"\"\n",
    "    # 2.1 按日/星期/月滑窗，统计交易笔数/金额统计量（笔均/最大等）\n",
    "    tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "    for fea1 in tqdm([\"date_months_to_now\"]):\n",
    "    # for fea1 in tqdm([\"date_months_to_now\", \"date_weeks_to_now\"]):  # TODO: 特征规模太大\n",
    "        # 日交易金额趋势\n",
    "        tmp_tr_feature, cols_amt = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr_by_day, fea1=fea1, fea2='APSDTRAMT', \n",
    "                        stats=['mean', 'max', 'min', 'median', 'std', 'sum', \"skew\", \"kurt\"]\n",
    "                    )\n",
    "\n",
    "        # 日交易笔数\n",
    "        tmp_tr_feature, _ = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr_by_day_cod, fea1=fea1, fea2='count',  # NOTE: count为列名\n",
    "                        # stats=['mean', 'max', 'min', 'median', 'std', 'sum', \"skew\", \"kurt\"]\n",
    "                        stats=[\"sum\"]\n",
    "                    )\n",
    "\n",
    "        # 日交易代码数\n",
    "        tmp_tr_feature, _ = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr, fea1=fea1, fea2='APSDTRCOD',  # TODO: 对列名nunique统计趋势\n",
    "                        # stats=['mean', 'max', 'min', 'median', 'std', 'sum', \"skew\", \"kurt\"]\n",
    "                        stats=['nunique']\n",
    "                    )\n",
    "        \n",
    "        # 日交易渠道数\n",
    "        tmp_tr_feature, _ = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr, fea1=fea1, fea2='APSDTRCHL',\n",
    "                        # stats=['mean', 'max', 'min', 'median', 'std', 'sum', \"skew\", \"kurt\"]\n",
    "                        stats=[\"nunique\"]\n",
    "                    )\n",
    "\n",
    "    tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "    # 2.2 每月月均交易金额是否大于当月四分/二分位数（用户群体内对比）\n",
    "    # NOTE: 距离时间越近，模型学习的权重理应越大\n",
    "    # 月均交易金额\n",
    "    cols_amt_month_sum = [col for col in cols_amt if (\"date_months_to_now\" in col and \"sum\" in col)]\n",
    "    for col in tqdm(cols_amt_month_sum):\n",
    "        tr_feature[\"{}_1_4_month\".format(str(col))] = (tr_feature[\"{}\".format(col)].abs() > tr_feature[\"{}\".format(col)].quantile(0.25)).astype(float).abs()  # 流入大于1/4位数\n",
    "        tr_feature[\"{}_1_2_month\".format(str(col))] = (tr_feature[\"{}\".format(col)].abs() > tr_feature[\"{}\".format(col)].quantile(0.5)).astype(float).abs()  # 流入大于1/2位数\n",
    "    \n",
    "    \"\"\" 3 交易代码分组统计 \"\"\"\n",
    "    # 3.1 流入/流出交易金额（笔均/最大等）\n",
    "    tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "    # for fea1 in tqdm(['APSDTRCOD', 'APSDTRCHL']):\n",
    "    for fea1 in tqdm(['APSDTRCHL']):\n",
    "        tmp_tr_feature, cols = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr_by_day_cod_amt, fea1=fea1, fea2='APSDTRAMT', \n",
    "                        stats=['mean', 'max', 'min', 'median', 'std', 'sum', \"skew\", \"kurt\"]\n",
    "                    )\n",
    "    tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "    # 3.2 交易笔数\n",
    "    cols_dict = dict()\n",
    "    tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "    for fea1 in tqdm(['APSDTRCHL']): \n",
    "        tmp_tr_feature, cols = get_id_category_features(\n",
    "                                    tmp_tr_feature, df_tr, fea1=fea1, fea2='CUST_NO', stat='count'\n",
    "                                )\n",
    "        cols_dict[fea1] = cols\n",
    "    tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "    \"\"\" 4 渠道偏好: 每个渠道的交易笔数 / 总笔数 \"\"\"\n",
    "    tr_freq_chl = tr_feature[[\"CUST_NO\"]+cols_dict[\"APSDTRCHL\"]]\n",
    "    tr_freq = df_tr.groupby(['CUST_NO']).agg({'CUST_NO': 'count'})\n",
    "    tr_freq.columns = ['tr_freq']\n",
    "    tr_freq = tr_freq.reset_index(drop=False)\n",
    "    for chl_col in tqdm(cols_dict[\"APSDTRCHL\"]):\n",
    "        # 获取客户渠道偏好度\n",
    "        tr_prefer_chl = get_division_features(tr_freq_chl, tr_freq, chl_col, 'tr_freq')\n",
    "        # 去掉偏渠道偏好度为0的渠道\n",
    "        if tr_prefer_chl.iloc[1].values.any():\n",
    "            tr_feature = tr_feature.merge(tr_prefer_chl, on=\"CUST_NO\", how=\"left\")\n",
    "    \n",
    "    \"\"\" 5 特征重命名 \"\"\"\n",
    "    tr_feature.columns = [\"CUST_NO\"] + [\"{}_{}\".format(col, postfix) for col in tr_feature.columns if col != \"CUST_NO\"]\n",
    "\n",
    "    return tr_feature\n",
    "\n",
    "# 加工训练集\n",
    "aps_train = get_aps_days_to_now(tr_aps_dtl_train)\n",
    "aps_feature_train = aps_train[[\"CUST_NO\"]].drop_duplicates(['CUST_NO']).copy().reset_index(drop=True)\n",
    "aps_in_train = deepcopy(aps_train[aps_train[\"APSDTRAMT\"]>=0]) \n",
    "aps_out_train = deepcopy(aps_train[aps_train[\"APSDTRAMT\"]<0])\n",
    "aps_feature_in_train = gen_aps_features_by_day(aps_in_train, aps_feature_train, postfix='in')\n",
    "aps_feature_out_train = gen_aps_features_by_day(aps_out_train, aps_feature_train, postfix='out')\n",
    "aps_feature_train = gen_aps_day_features_by_month(aps_train, aps_feature_train, dual_dir=True)\n",
    "aps_feature_train = aps_feature_train.merge(aps_feature_in_train, how=\"left\", on=\"CUST_NO\")\n",
    "aps_feature_train = aps_feature_train.merge(aps_feature_out_train, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "# 加工测试集\n",
    "aps_test = get_aps_days_to_now(tr_aps_dtl_test_a) \n",
    "aps_feature_test = aps_test[[\"CUST_NO\"]].drop_duplicates(['CUST_NO']).copy().reset_index(drop=True)\n",
    "aps_in_test = deepcopy(aps_test[aps_test[\"APSDTRAMT\"]>=0]) \n",
    "aps_out_test = deepcopy(aps_test[aps_test[\"APSDTRAMT\"]<0])\n",
    "aps_feature_in_test = gen_aps_features_by_day(aps_in_test, aps_feature_test, postfix='in')\n",
    "aps_feature_out_test = gen_aps_features_by_day(aps_out_test, aps_feature_test, postfix='out')\n",
    "aps_feature_test = gen_aps_day_features_by_month(aps_test, aps_feature_test, dual_dir=True)\n",
    "aps_feature_test = aps_feature_test.merge(aps_feature_in_test, how=\"left\", on=\"CUST_NO\")\n",
    "aps_feature_test = aps_feature_test.merge(aps_feature_out_test, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "# 训练测试合并\n",
    "aps_feature_train.columns = [\"CUST_NO\"] + [\"aps_{}\".format(col) for col in aps_feature_train.columns if col != \"CUST_NO\"]\n",
    "aps_feature_test.columns = [\"CUST_NO\"] + [\"aps_{}\".format(col) for col in aps_feature_test.columns if col != \"CUST_NO\"]\n",
    "aps_feature_train[\"is_test\"] = False\n",
    "aps_feature_test[\"is_test\"] = True\n",
    "aps_feature = pd.concat([aps_feature_train, aps_feature_test], axis=0, join=\"outer\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "708db678-88db-486c-906d-f3bdb470c914",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:48:39.627096Z",
     "iopub.status.busy": "2024-11-13T07:48:39.626666Z",
     "iopub.status.idle": "2024-11-13T07:52:14.558799Z",
     "msg_id": "7ab36681-4f62-4bd6-92a8-15b90149c59f",
     "shell.execute_reply": "2024-11-13T07:52:14.557922Z",
     "shell.execute_reply.started": "2024-11-13T07:48:39.627066Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 12%|█▎        | 1/8 [00:00<00:02,  2.63it/s]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:00<00:02,  2.69it/s]\u001b[A\n",
      " 38%|███▊      | 3/8 [00:01<00:01,  2.70it/s]\u001b[A\n",
      " 50%|█████     | 4/8 [00:01<00:01,  2.59it/s]\u001b[A\n",
      " 62%|██████▎   | 5/8 [00:01<00:01,  2.63it/s]\u001b[A\n",
      " 75%|███████▌  | 6/8 [00:02<00:00,  2.63it/s]\u001b[A\n",
      " 88%|████████▊ | 7/8 [00:16<00:05,  5.01s/it]\u001b[A\n",
      "100%|██████████| 8/8 [00:30<00:00,  3.82s/it]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:00<00:00,  2.13it/s]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:12<00:00, 12.68s/it]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:12<00:00, 12.11s/it]\u001b[A\n",
      "100%|██████████| 1/1 [00:55<00:00, 55.85s/it]\n",
      "100%|██████████| 3/3 [00:00<00:00, 168.24it/s]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 12%|█▎        | 1/8 [00:00<00:05,  1.33it/s]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:01<00:04,  1.31it/s]\u001b[A\n",
      " 38%|███▊      | 3/8 [00:02<00:03,  1.27it/s]\u001b[A\n",
      " 50%|█████     | 4/8 [00:03<00:03,  1.24it/s]\u001b[A\n",
      " 62%|██████▎   | 5/8 [00:03<00:02,  1.23it/s]\u001b[A\n",
      " 75%|███████▌  | 6/8 [00:04<00:01,  1.23it/s]\u001b[A\n",
      " 88%|████████▊ | 7/8 [00:18<00:04,  4.88s/it]\u001b[A\n",
      "100%|██████████| 8/8 [00:29<00:00,  3.73s/it]\u001b[A\n",
      "100%|██████████| 1/1 [00:29<00:00, 29.86s/it]\n",
      "100%|██████████| 1/1 [00:07<00:00,  7.70s/it]\n",
      "100%|██████████| 1/1 [00:07<00:00,  7.97s/it]\n",
      "100%|██████████| 4/4 [00:01<00:00,  3.75it/s]\n",
      "100%|██████████| 3/3 [00:36<00:00, 12.03s/it]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 50%|█████     | 4/8 [00:00<00:00, 30.76it/s]\u001b[A\n",
      "100%|██████████| 8/8 [00:02<00:00,  2.70it/s]\u001b[A\n",
      "\n",
      "100%|██████████| 1/1 [00:00<00:00, 24.77it/s]\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.11it/s]\u001b[A\n",
      "\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.16it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:04<00:00,  4.78s/it]\n",
      "100%|██████████| 3/3 [00:00<00:00, 297.04it/s]\n",
      "  0%|          | 0/1 [00:00<?, ?it/s]\n",
      "  0%|          | 0/8 [00:00<?, ?it/s]\u001b[A\n",
      " 25%|██▌       | 2/8 [00:00<00:00, 15.79it/s]\u001b[A\n",
      " 50%|█████     | 4/8 [00:00<00:00, 15.27it/s]\u001b[A\n",
      " 75%|███████▌  | 6/8 [00:00<00:00, 15.16it/s]\u001b[A\n",
      "100%|██████████| 8/8 [00:02<00:00,  2.99it/s]\u001b[A\n",
      "100%|██████████| 1/1 [00:02<00:00,  2.68s/it]\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.64it/s]\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.64it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 54.58it/s]\n",
      "100%|██████████| 3/3 [00:02<00:00,  1.18it/s]\n"
     ]
    }
   ],
   "source": [
    "# 8 商户交易流水表（GTGSH_MERCH_TR_DTL）\n",
    "def get_merch_days_to_now(df):\n",
    "    df[\"date\"] = pd.to_datetime(df[\"merch_tr_dtl_DATE_TR\"], format=\"%Y%m%d\")\n",
    "    df_months_to_now = (df[\"date\"].max() - df[\"date\"]).dt.days\n",
    "    df[\"date_months_to_now\"] = df_months_to_now // 31  # 距今月数\n",
    "    df[\"date_weeks_to_now\"] = df_months_to_now // 7  # 距今周数\n",
    "    df[\"date_days_to_now\"] = df_months_to_now  # 距今天数\n",
    "    \n",
    "    return df\n",
    "\n",
    "def get_merch_recent_days_to_now(df_tr, month):\n",
    "    # 最近一笔交易距今天数\n",
    "    tmp_df = df_tr.groupby(['CUST_NO'])[\"date_days_to_now\"].min().to_frame(\"merch_tr_recent_days_to_now_{}\".format(str(month))).reset_index()  # 取最近一天\n",
    "    \n",
    "    return tmp_df\n",
    "\n",
    "def get_merch_max_amt_days_to_now(df_tr, month):\n",
    "    # 最大一笔金额距今天数（剔除零值交易）\n",
    "    tmp_df = df_tr.groupby(['CUST_NO']).agg({\"merch_tr_dtl_AMT_TR\": \"max\"}).reset_index()\n",
    "    tmp_df = tmp_df.merge(df_tr[['CUST_NO', 'date_days_to_now', 'merch_tr_dtl_AMT_TR']], on=[\"CUST_NO\", 'merch_tr_dtl_AMT_TR'], how=\"inner\")\n",
    "    tmp_df_day = tmp_df.groupby(['CUST_NO'])[\"date_days_to_now\"].min().to_frame(\"merch_tr_max_amt_days_to_now_{}\".format(str(month))).reset_index()  # 取最近一天\n",
    "    tmp_df_amt = tmp_df.groupby(['CUST_NO']).agg({\"merch_tr_dtl_AMT_TR\": \"max\"}).reset_index()\n",
    "    tmp_df_amt.columns = ['CUST_NO', 'merch_tr_max_amt_{}'.format(str(month))]\n",
    "\n",
    "    return tmp_df_day, tmp_df_amt\n",
    "    \n",
    "\n",
    "def get_merch_min_amt_days_to_now(df_tr, month):\n",
    "    # 最小一笔金额距今天数（剔除零值交易）\n",
    "    tmp_df = df_tr.groupby(['CUST_NO']).agg({\"merch_tr_dtl_AMT_TR\": \"min\"}).reset_index()\n",
    "    tmp_df = tmp_df.merge(df_tr[['CUST_NO', 'date_days_to_now', 'merch_tr_dtl_AMT_TR']], on=[\"CUST_NO\", 'merch_tr_dtl_AMT_TR'], how=\"inner\")\n",
    "    tmp_df_day = tmp_df.groupby(['CUST_NO'])[\"date_days_to_now\"].min().to_frame(\"merch_tr_min_amt_days_to_now_{}\".format(str(month))).reset_index()  # 取最近一天\n",
    "    tmp_df_amt = tmp_df.groupby(['CUST_NO']).agg({\"merch_tr_dtl_AMT_TR\": \"min\"}).reset_index()\n",
    "    tmp_df_amt.columns = ['CUST_NO', 'merch_tr_min_amt_{}'.format(str(month))]\n",
    "\n",
    "    return tmp_df_day, tmp_df_amt\n",
    "\n",
    "def gen_merch_day_features_by_month(df_tr, tr_feature): \n",
    "    '''\n",
    "        1 最大一笔流入/流出金额距今天数特征，剔除零值交易\n",
    "        2 最大一笔流入流出金额天数/金额轧差（没有按天聚合）\n",
    "    '''\n",
    "    ## 每月单日最大金额交易距今天数/每月最近一笔交易距每月最大单日金额交易天数\n",
    "    tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "    for month in tqdm([0, 1, 2]):\n",
    "        df_tr_month = df_tr[df_tr[\"date_months_to_now\"]==month]\n",
    "        df_max_amt_days_to_now, df_max_amt = get_merch_max_amt_days_to_now(df_tr_month, month)\n",
    "        df_min_amt_days_to_now, df_min_amt = get_merch_min_amt_days_to_now(df_tr_month, month)\n",
    "        df_recent_days_to_now = get_merch_recent_days_to_now(df_tr_month, month)\n",
    "        tmp_tr_feature = tmp_tr_feature.merge(df_max_amt_days_to_now, how=\"left\", on=\"CUST_NO\")\n",
    "        tmp_tr_feature = tmp_tr_feature.merge(df_min_amt_days_to_now, how=\"left\", on=\"CUST_NO\")\n",
    "        tmp_tr_feature = tmp_tr_feature.merge(df_recent_days_to_now, how=\"left\", on=\"CUST_NO\")\n",
    "        tmp_tr_feature = tmp_tr_feature.merge(df_max_amt, how=\"left\", on=\"CUST_NO\")\n",
    "        tmp_tr_feature = tmp_tr_feature.merge(df_min_amt, how=\"left\", on=\"CUST_NO\")\n",
    "        tmp_tr_feature[\"merch_tr_maxamt_days_to_recent_{}\".format(str(month))] = tmp_tr_feature[\"merch_tr_recent_days_to_now_{}\".format(str(month))] - tmp_tr_feature[\"merch_tr_max_amt_days_to_now_{}\".format(str(month))]\n",
    "        tmp_tr_feature[\"merch_tr_minamt_days_to_recent_{}\".format(str(month))] = tmp_tr_feature[\"merch_tr_recent_days_to_now_{}\".format(str(month))] - tmp_tr_feature[\"merch_tr_min_amt_days_to_now_{}\".format(str(month))]\n",
    "\n",
    "        # 每月最大最小消费金额间隔\n",
    "        tmp_tr_feature[\"merch_tr_maxminamt_days_diff_{}\".format(month)] = tmp_tr_feature[\"merch_tr_max_amt_days_to_now_{}\".format(month)] - tmp_tr_feature[\"merch_tr_min_amt_days_to_now_{}\".format(month)]\n",
    "        # 每月最大最小消费金额扎差\n",
    "        tmp_tr_feature[\"merch_tr_maxminamt_diff_{}\".format(month)] = tmp_tr_feature[\"merch_tr_max_amt_{}\".format(month)] - tmp_tr_feature[\"merch_tr_min_amt_{}\".format(month)]        \n",
    "        \n",
    "    tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "    # 不同月份最大消费金额间隔\n",
    "    tr_feature[\"merch_tr_maxamt_days_diff_0_1\"] = tr_feature[\"merch_tr_max_amt_days_to_now_1\"] - tr_feature[\"merch_tr_max_amt_days_to_now_0\"]\n",
    "    tr_feature[\"merch_tr_maxamt_days_diff_1_2\"] = tr_feature[\"merch_tr_max_amt_days_to_now_2\"] - tr_feature[\"merch_tr_max_amt_days_to_now_1\"]\n",
    "    \n",
    "    return tr_feature\n",
    "\n",
    "def gen_merch_features_by_day(df_tr, tr_feature):\n",
    "    '''\n",
    "        1 流入流出分组处理\n",
    "        2 渠道偏好特征，分母使用各自渠道的转入/转出总笔数（正常交易类特征）\n",
    "        3 最近一笔交易距今天数特征\n",
    "        4 最近一笔交易距每月最大单日金额交易天数特征\n",
    "        5 最大一笔流入流出距今天数\n",
    "    '''\n",
    "    \"\"\" 1 数据预处理 \"\"\"\n",
    "    # 1.1 按天/交易代码聚合金额\n",
    "    df_tr_by_day_cod_amt = df_tr.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", \"merch_tr_dtl_COD_TR\", \"merch_tr_dtl_COD_PSG\"]).agg({\"merch_tr_dtl_AMT_TR\": \"sum\"}).reset_index()\n",
    "    df_tr_by_day_cod_amt[\"merch_tr_dtl_AMT_TR\"].fillna(0, inplace=True)\n",
    "    df_tr_by_day = df_tr_by_day_cod_amt.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\"]).agg({\"merch_tr_dtl_AMT_TR\": \"sum\"}).reset_index() \n",
    "\n",
    "    # 1.2 按天聚合交易代码数\n",
    "    df_tr_by_day_cod_ns = df_tr.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", \"merch_tr_dtl_COD_TR\"])[\"merch_tr_dtl_COD_TR\"].agg(['nunique', 'count'])\n",
    "    df_tr_by_day_cod_ns.columns = ['nunique', 'count']\n",
    "    df_tr_by_day_cod_ns = df_tr_by_day_cod_ns.reset_index()\n",
    "    df_tr_by_day_cod = df_tr_by_day_cod_ns.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\"])[['nunique', 'count']].agg(\"sum\").reset_index() \n",
    "\n",
    "    # 1.3 按天聚合交易渠道数\n",
    "    df_tr_by_day_chl_ns = df_tr.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\", \"merch_tr_dtl_COD_PSG\"])[\"merch_tr_dtl_COD_PSG\"].agg(['nunique', 'count'])\n",
    "    df_tr_by_day_chl_ns.columns = ['nunique', 'count']\n",
    "    df_tr_by_day_chl_ns = df_tr_by_day_chl_ns.reset_index()\n",
    "    df_tr_by_day_chl = df_tr_by_day_chl_ns.groupby([\"CUST_NO\", \"date_days_to_now\", \"date_weeks_to_now\", \"date_months_to_now\"])[['nunique', 'count']].agg(\"sum\").reset_index()\n",
    "\n",
    "    \"\"\"\" 2 滑窗 \"\"\"\n",
    "    # 2.1 按日/星期/月滑窗，统计交易笔数/金额统计量（笔均/最大等）\n",
    "    tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "    for fea1 in tqdm([\"date_months_to_now\"]):\n",
    "        # 日交易金额趋势\n",
    "        tmp_tr_feature, cols_amt = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr_by_day, fea1=fea1, fea2='merch_tr_dtl_AMT_TR', \n",
    "                        stats=['mean', 'max', 'min', 'median', 'std', 'sum', \"skew\", \"kurt\"]\n",
    "                    )\n",
    "\n",
    "        # 日交易笔数\n",
    "        tmp_tr_feature, _ = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr_by_day_cod, fea1=fea1, fea2='count',\n",
    "                        stats=[\"sum\"]\n",
    "                    )\n",
    "\n",
    "        # 日交易代码数\n",
    "        tmp_tr_feature, _ = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr, fea1=fea1, fea2='merch_tr_dtl_COD_TR',\n",
    "                        stats=['nunique']\n",
    "                    )\n",
    "\n",
    "        # 日交易渠道数\n",
    "        tmp_tr_feature, _ = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr, fea1=fea1, fea2='merch_tr_dtl_COD_PSG',\n",
    "                        stats=[\"nunique\"]\n",
    "                    )\n",
    "                    \n",
    "    tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "    # 2.2 每月月均交易金额是否大于当月四分/二分位数（用户群体内对比）\n",
    "    # 月均交易金额\n",
    "    cols_amt_month_sum = [col for col in cols_amt if (\"date_months_to_now\" in col and \"sum\" in col)]\n",
    "    for col in tqdm(cols_amt_month_sum):\n",
    "        tr_feature[\"{}_1_4_month\".format(str(col))] = (tr_feature[\"{}\".format(col)].abs() > tr_feature[\"{}\".format(col)].quantile(0.25)).astype(float).abs()  # 流入大于1/4位数\n",
    "        tr_feature[\"{}_1_2_month\".format(str(col))] = (tr_feature[\"{}\".format(col)].abs() > tr_feature[\"{}\".format(col)].quantile(0.5)).astype(float).abs()  # 流入大于1/2位数\n",
    "    \n",
    "    \"\"\" 3 交易代码分组统计 \"\"\"\n",
    "    # 3.1 流入/流出交易金额（笔均/最大等）\n",
    "    tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "    for fea1 in tqdm(['merch_tr_dtl_COD_TR']):\n",
    "        tmp_tr_feature, cols = get_all_id_category_features(\n",
    "                        tmp_tr_feature, df_tr_by_day_cod_amt, fea1=fea1, fea2='merch_tr_dtl_AMT_TR', \n",
    "                        stats=['mean', 'max', 'min', 'median', 'std', 'sum', \"skew\", \"kurt\"]\n",
    "                    )\n",
    "    tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "    # 3.2 代码交易笔数\n",
    "    tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "    for fea1 in tqdm(['merch_tr_dtl_COD_TR']): \n",
    "        tmp_tr_feature, _ = get_id_category_features(\n",
    "                                    tmp_tr_feature, df_tr, fea1=fea1, fea2='CUST_NO', stat='count'\n",
    "                                )\n",
    "    tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "    # 3.3 渠道交易笔数\n",
    "    cols_dict = dict()\n",
    "    tmp_tr_feature = tr_feature[[\"CUST_NO\"]].drop_duplicates([\"CUST_NO\"]).copy().reset_index(drop=True)\n",
    "    for fea1 in tqdm(['merch_tr_dtl_COD_PSG']): \n",
    "        tmp_tr_feature, cols = get_id_category_features(\n",
    "                                    tmp_tr_feature, df_tr, fea1=fea1, fea2='CUST_NO', stat='count'\n",
    "                                )\n",
    "        cols_dict[fea1] = cols\n",
    "    tr_feature = tr_feature.merge(tmp_tr_feature, how=\"left\", on=\"CUST_NO\")\n",
    "\n",
    "    \"\"\" 4 渠道偏好: 每个渠道的交易笔数 / 总笔数 \"\"\"\n",
    "    tr_freq_chl = tr_feature[[\"CUST_NO\"]+cols_dict[\"merch_tr_dtl_COD_PSG\"]]\n",
    "    tr_freq = df_tr.groupby(['CUST_NO']).agg({'CUST_NO': 'count'})\n",
    "    tr_freq.columns = ['tr_freq']\n",
    "    tr_freq = tr_freq.reset_index(drop=False)\n",
    "    for chl_col in tqdm(cols_dict[\"merch_tr_dtl_COD_PSG\"]):\n",
    "        # 获取客户渠道偏好度\n",
    "        tr_prefer_chl = get_division_features(tr_freq_chl, tr_freq, chl_col, 'tr_freq')\n",
    "        # 去掉偏渠道偏好度为0的渠道\n",
    "        if tr_prefer_chl.iloc[1].values.any():\n",
    "            tr_feature = tr_feature.merge(tr_prefer_chl, on=\"CUST_NO\", how=\"left\")\n",
    "\n",
    "    return tr_feature\n",
    "\n",
    "# 加工训练集\n",
    "merch_tr_dtl_train = get_merch_days_to_now(merch_tr_dtl_train)\n",
    "merch_tr_feature_train = merch_tr_dtl_train[[\"CUST_NO\"]].drop_duplicates(['CUST_NO']).copy().reset_index(drop=True)\n",
    "merch_tr_feature_train = gen_merch_features_by_day(merch_tr_dtl_train, merch_tr_feature_train)\n",
    "merch_tr_feature_train = gen_merch_day_features_by_month(merch_tr_dtl_train, merch_tr_feature_train)\n",
    "\n",
    "# 加工测试集\n",
    "merch_tr_dtl_test_a = get_merch_days_to_now(merch_tr_dtl_test_a) \n",
    "merch_tr_feature_test = merch_tr_dtl_test_a[[\"CUST_NO\"]].drop_duplicates(['CUST_NO']).copy().reset_index(drop=True)\n",
    "merch_tr_feature_test = gen_merch_features_by_day(merch_tr_dtl_test_a, merch_tr_feature_test)\n",
    "merch_tr_feature_test = gen_merch_day_features_by_month(merch_tr_dtl_test_a, merch_tr_feature_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "5c1bda71-5041-48b7-b65e-bbab62e0847a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:52:14.560429Z",
     "iopub.status.busy": "2024-11-13T07:52:14.560020Z",
     "iopub.status.idle": "2024-11-13T07:52:14.817861Z",
     "msg_id": "2c421fd3-16ed-4413-b6fe-2aa57abd940d",
     "shell.execute_reply": "2024-11-13T07:52:14.816968Z",
     "shell.execute_reply.started": "2024-11-13T07:52:14.560401Z"
    }
   },
   "outputs": [],
   "source": [
    "# 9 企业工商基本信息表（GTGSH_ENTINFO_BASIC_INFO）\n",
    "def generate_entinfo_features(df): \n",
    "    # 判断是否首次执行\n",
    "    if 'entinfo_basic_info_DATA_DAT' in df.columns:\n",
    "        df[\"entinfo_basic_info_DATA_DAT\"] = pd.to_datetime(df[\"entinfo_basic_info_DATA_DAT\"], format=\"%Y%m%d\")\n",
    "        df[\"entinfo_basic_info_ESDATE\"] = pd.to_datetime(df[\"entinfo_basic_info_ESDATE\"], format=\"%Y%m%d\")\n",
    "        df[\"entinfo_basic_info_ESDATE_diff_DATA_DAT\"] = (df[\"entinfo_basic_info_DATA_DAT\"] - df[\"entinfo_basic_info_ESDATE\"]).dt.days\n",
    "        df[\"entinfo_basic_info_esdyears\"] = df[\"entinfo_basic_info_ESDATE_diff_DATA_DAT\"] // 365  # 注册年数\n",
    "        df.drop([\"entinfo_basic_info_ESDATE\", \"entinfo_basic_info_DATA_DAT\"], axis=1, inplace=True)\n",
    "    return df\n",
    "\n",
    "entinfo_basic_info_feature_train = generate_entinfo_features(entinfo_basic_info_train)\n",
    "entinfo_basic_info_feature_test = generate_entinfo_features(entinfo_basic_info_test_a)\n",
    "entinfo_basic_info_feature_train['is_test'] = 0\n",
    "entinfo_basic_info_feature_test['is_test'] = 1\n",
    "entinfo_basic_info_feature = pd.concat([entinfo_basic_info_feature_train, entinfo_basic_info_feature_test], axis=0)\n",
    "\n",
    "# 训练测试集注册资本二阶统计量分布差异较大，将整体省份注册资本、年数分组统计量，分别赋值到训练测试\n",
    "tmp_feature = entinfo_basic_info_feature.groupby(['entinfo_basic_info_REGPROVIN_CD'])['entinfo_basic_info_REGCAP'].agg(['min', 'max', 'mean', 'std', 'median'])\n",
    "tmp_feature.columns = ['entinfo_basic_info_REGPROVIN_CD_REGCAP_'+col for col in tmp_feature.columns if col != 'entinfo_basic_info_REGPROVIN_CD']\n",
    "entinfo_basic_info_feature = entinfo_basic_info_feature.merge(tmp_feature, on='entinfo_basic_info_REGPROVIN_CD', how='left')\n",
    "tmp_feature = entinfo_basic_info_feature.groupby(['entinfo_basic_info_REGPROVIN_CD'])['entinfo_basic_info_esdyears'].agg(['min', 'max', 'mean', 'std', 'median'])\n",
    "tmp_feature.columns = ['entinfo_basic_info_REGPROVIN_CD_esdyears'+col for col in tmp_feature.columns if col != 'entinfo_basic_info_REGPROVIN_CD']\n",
    "entinfo_basic_info_feature = entinfo_basic_info_feature.merge(tmp_feature, on='entinfo_basic_info_REGPROVIN_CD', how='left')\n",
    "del tmp_feature\n",
    "\n",
    "# 拆分训练测试集\n",
    "entinfo_basic_info_feature_train = entinfo_basic_info_feature[entinfo_basic_info_feature['is_test'] == 0]\n",
    "del entinfo_basic_info_feature_train['is_test']\n",
    "entinfo_basic_info_feature_test = entinfo_basic_info_feature[entinfo_basic_info_feature['is_test'] == 1]\n",
    "del entinfo_basic_info_feature_test['is_test']"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8a79508c-32b8-4304-ab89-c733fae7b15d",
   "metadata": {},
   "source": [
    "# 2 模型训练\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "2472081e-9833-403c-8f29-654817de1e92",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T07:52:14.819599Z",
     "iopub.status.busy": "2024-11-13T07:52:14.818978Z",
     "iopub.status.idle": "2024-11-13T07:52:16.576199Z",
     "msg_id": "40f7f928-dba0-40ea-9ed4-eb9a80c0eb7b",
     "shell.execute_reply": "2024-11-13T07:52:16.575267Z",
     "shell.execute_reply.started": "2024-11-13T07:52:14.819571Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 释放内存\n",
    "del mb_pageview_dtl_train, tr_aps_dtl_train, merch_tr_dtl_train\n",
    "del mb_pageview_dtl_test_a, tr_aps_dtl_test_a, merch_tr_dtl_test_a\n",
    "\n",
    "gc.collect()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "17ff6a30-824b-4f3f-b665-a37836b027f6",
   "metadata": {},
   "source": [
    "## 2.1 IRF\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "27066721-39b4-4cd1-bf8e-4043c414f6c8",
   "metadata": {},
   "source": [
    "### 2.1.1 特征合并\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "e387c635-c469-451a-b6e7-936d9c19a7cb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:40:28.051682Z",
     "iopub.status.busy": "2024-11-13T08:40:28.051169Z",
     "iopub.status.idle": "2024-11-13T08:40:44.460575Z",
     "msg_id": "04364f42-502f-42a4-8a11-91b09e3e7ae1",
     "shell.execute_reply": "2024-11-13T08:40:44.459693Z",
     "shell.execute_reply.started": "2024-11-13T08:40:28.051648Z"
    }
   },
   "outputs": [],
   "source": [
    "df_train = target_train.merge(nature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(asset_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(prod_hold_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(entinfo_basic_info_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(tr_ibtf_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(tr_tpay_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(aps_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_join_op_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_embed_month_1, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_embed_month_2, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_embed_month_3, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(merch_tr_feature_train, on='CUST_NO', how='left')\n",
    "\n",
    "df_test = target_test_a.merge(nature_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(asset_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(prod_hold_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(entinfo_basic_info_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(tr_ibtf_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(tr_tpay_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(aps_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_join_op_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_embed_month_1, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_embed_month_2, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_embed_month_3, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(merch_tr_feature_test, on='CUST_NO', how='left')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1dd61fd-413e-4003-8066-2f425b539397",
   "metadata": {},
   "source": [
    "### 2.1.2 特征筛选\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "5afadbab-5833-4d9a-ac4d-6938fb5703a6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:40:44.462779Z",
     "iopub.status.busy": "2024-11-13T08:40:44.462219Z",
     "iopub.status.idle": "2024-11-13T08:41:05.389643Z",
     "msg_id": "88d2afb5-a65a-4535-8b56-c20343268da0",
     "shell.execute_reply": "2024-11-13T08:41:05.388849Z",
     "shell.execute_reply.started": "2024-11-13T08:40:44.462749Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "剔除高占空比特征前： (60584, 2475)\n",
      "剔除高占空比特征后： (60584, 1812)\n",
      "剔除高占空比特征前： (6230, 2277)\n",
      "剔除高占空比特征后： (6230, 1783)\n",
      "训练测试集特征取交后： (6230, 1775)\n",
      "['DATA_DAT_x', 'nature_DATA_DAT', 'asset_DATA_DAT', 'prod_hold_DATA_DAT', 'entinfo_basic_info_REGPROVIN_CD_esdyearsmin', 'DATA_DAT_y']\n",
      "剔除单一值特征特征后： (6230, 1769)\n",
      "训练测试集分布不一致特征： ['aps_CUST_NO_APSDTRCHL_CUST_NO_count_55c135066d677b567f25a706ce5b3cc5_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_7dcdd7724d3ac7a03ea565c65d8376e3_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_55c135066d677b567f25a706ce5b3cc5_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_7dcdd7724d3ac7a03ea565c65d8376e3_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_9b9e2ea4b767c480f06e6c7d70da7a60_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_9b9e2ea4b767c480f06e6c7d70da7a60_div_tr_freq_out', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_1ffdcf402e5ecf00405b19db93c0a37a', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_2f1a1ec13092261011ae4d8d1ab00389']\n",
      "剔除分布异常特征特征后： (6230, 1761)\n"
     ]
    }
   ],
   "source": [
    "''' 特征筛选 '''\n",
    "# 剔除缺失值占比超过0.98的特征（NOTE: 重要！训练/测试分开剔除）\n",
    "def stat_df(df):\n",
    "    stats = []\n",
    "    for col in df.columns:\n",
    "        stats.append((col, df[col].nunique(),df[col].isnull().sum()*100/df.shape[0],\n",
    "                     df[col].value_counts(normalize=True,dropna=False).values[0]*100,df[col].dtype))\n",
    "    stats_df = pd.DataFrame(stats, columns=['特征','唯一数数量','缺失值占比','最多数占比','类型'])\n",
    "    stats_df.sort_values('缺失值占比',ascending=False)\n",
    "    return stats_df\n",
    "\n",
    "def del_nan_col(feature):\n",
    "    print(\"剔除高占空比特征前：\", feature.shape)\n",
    "    feature_res = stat_df(feature)\n",
    "    feature_res = feature_res[feature_res['缺失值占比'] <= 98]\n",
    "    feature_names_res = [col for col in feature.columns if col in list(feature_res['特征'])]\n",
    "    feature = feature[feature_names_res]\n",
    "    print(\"剔除高占空比特征后：\", feature.shape)\n",
    "    \n",
    "    return feature \n",
    "\n",
    "df_train = del_nan_col(df_train)\n",
    "df_test = del_nan_col(df_test)\n",
    "\n",
    "# 取特征交集\n",
    "df_test = df_test[[col for col in df_test.columns if col in df_train.columns]]\n",
    "print(\"训练测试集特征取交后：\", df_test.shape)\n",
    "\n",
    "# 剔除单一值特征\n",
    "def search_single (df):\n",
    "    features = []\n",
    "    numerical_feature = list(df.select_dtypes(exclude=['object']).columns)\n",
    "    object_feature = list(df.select_dtypes(include=['object']).columns)\n",
    "    unique_feature = []\n",
    "    other_feature = []\n",
    "    for feature in numerical_feature:\n",
    "        temp = df[feature].nunique()\n",
    "        if temp == 1:\n",
    "            unique_feature.append(feature)\n",
    "        else:\n",
    "            other_feature.append(feature)\n",
    "    features.append(unique_feature)\n",
    "    features.append(other_feature)\n",
    "    features.append(object_feature)\n",
    "    return features\n",
    "unique_cols = search_single(df_train)[0]\n",
    "print(unique_cols)\n",
    "df_train = df_train[[i for i in df_train.columns if i not in unique_cols]]\n",
    "df_test = df_test[[i for i in df_test.columns if i not in unique_cols]]\n",
    "print(\"剔除单一值特征特征后：\", df_test.shape)\n",
    "\n",
    "# 剔除训练测试集差异大的特征\n",
    "drop_adval_cols = ['aps_CUST_NO_APSDTRCHL_CUST_NO_count_55c135066d677b567f25a706ce5b3cc5_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_7dcdd7724d3ac7a03ea565c65d8376e3_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_55c135066d677b567f25a706ce5b3cc5_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_7dcdd7724d3ac7a03ea565c65d8376e3_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_9b9e2ea4b767c480f06e6c7d70da7a60_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_9b9e2ea4b767c480f06e6c7d70da7a60_div_tr_freq_out', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_1ffdcf402e5ecf00405b19db93c0a37a', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_2f1a1ec13092261011ae4d8d1ab00389']\n",
    "print(\"训练测试集分布不一致特征：\", drop_adval_cols)\n",
    "df_train = df_train[[i for i in df_train.columns if i not in drop_adval_cols]]\n",
    "df_test = df_test[[i for i in df_test.columns if i not in drop_adval_cols]]\n",
    "print(\"剔除分布异常特征特征后：\", df_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c89f0a35-a208-4bcf-9ca8-404e21eeb6f8",
   "metadata": {},
   "source": [
    "### 2.1.3 类别特征编码\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "3582f26a-7e03-4d24-88fa-fd97c5bf558d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:41:05.391130Z",
     "iopub.status.busy": "2024-11-13T08:41:05.390768Z",
     "iopub.status.idle": "2024-11-13T08:41:13.801668Z",
     "msg_id": "4a5b9ff4-2103-426a-940f-514d380dff71",
     "shell.execute_reply": "2024-11-13T08:41:13.800845Z",
     "shell.execute_reply.started": "2024-11-13T08:41:05.391102Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "合并： (66814, 1798)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 4/4 [00:00<00:00, 71.83it/s]\n"
     ]
    }
   ],
   "source": [
    "''' 类别特征编码 '''\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "from sklearn.model_selection import StratifiedKFold, KFold\n",
    "\n",
    "# 1 特征合并\n",
    "feature = pd.concat([df_train, df_test], axis=0)\n",
    "print(\"合并：\", feature.shape)\n",
    "\n",
    "# 2 顺序编码\n",
    "cat_cols = ['entinfo_basic_info_ENTSTATUS_CD', 'entinfo_basic_info_INDS_CD', 'entinfo_basic_info_REGPROVIN_CD', 'entinfo_basic_info_ENTTYPE_CD']\n",
    "cat_cols = [col for col in df_train.columns if col in cat_cols]\n",
    "for col in tqdm(cat_cols):\n",
    "    map_dict = dict(zip(list(feature[col].value_counts().index), range(feature[col].nunique())))\n",
    "    feature[col] = feature[col].map(map_dict)\n",
    "\n",
    "# 3 OneHot编码\n",
    "cat_cols = ['entinfo_basic_info_ENTSTATUS_CD', 'entinfo_basic_info_REGPROVIN_CD', 'entinfo_basic_info_ENTTYPE_CD']\n",
    "cat_features = feature[cat_cols]\n",
    "cat_col_encoder = OneHotEncoder()\n",
    "cat_features = cat_col_encoder.fit_transform(cat_features).toarray()\n",
    "one_hot_cols = []\n",
    "for i, one_hot_col in enumerate(cat_cols):\n",
    "    one_hot_cols += ['_'.join([one_hot_col, str(int(col)) if not np.isnan(col) else str(col)]) for col in list(cat_col_encoder.categories_[i])]\n",
    "cat_features = pd.DataFrame(cat_features, columns=one_hot_cols)\n",
    "feature.drop(cat_cols, axis=1, inplace=True)\n",
    "feature = pd.concat([feature.reset_index(drop=True), cat_features], axis=1)\n",
    "\n",
    "# 特征拆分\n",
    "df_train = feature[feature.FLAG.notnull()].reset_index(drop=True)\n",
    "df_test = feature[feature.FLAG.isnull()].reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5a0a5b6-c569-46df-8477-1ae5059b79fb",
   "metadata": {},
   "source": [
    "### 2.1.4 模型训练\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "20c2cb62-1a77-4cf0-a28d-acd95450f614",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:41:13.804304Z",
     "iopub.status.busy": "2024-11-13T08:41:13.803752Z",
     "iopub.status.idle": "2024-11-13T08:41:34.527370Z",
     "msg_id": "713d01e5-332e-490b-b723-5079a5c6681c",
     "shell.execute_reply": "2024-11-13T08:41:34.526607Z",
     "shell.execute_reply.started": "2024-11-13T08:41:13.804275Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1836\n",
      "训练集维度：(60584, 1836)\n",
      "测试集维度：(6230, 1836)\n",
      "================5==============\n",
      "\n",
      "Fold_1 Training ================================\n",
      "\n",
      "\n",
      "Fold_2 Training ================================\n",
      "\n",
      "\n",
      "Fold_3 Training ================================\n",
      "\n",
      "\n",
      "Fold_4 Training ================================\n",
      "\n",
      "\n",
      "Fold_5 Training ================================\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_1737922/2603113196.py:59: RuntimeWarning: invalid value encountered in true_divide\n",
      "  f1_scores = (precisions * recalls) / (precisions + recalls)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train's precision: 0.1555481617035435\n",
      "train's recall: 0.590091511517829\n",
      "train's auc: 0.64842462874415\n",
      "train's ks: 0.2180203127095809\n",
      "train's F1: 0.24619840695148443\n",
      "最佳阈值:  0.46931362812011457\n",
      "打印分类报告: \n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "         0.0       0.93      0.63      0.75     54246\n",
      "         1.0       0.16      0.59      0.25      6338\n",
      "\n",
      "    accuracy                           0.62     60584\n",
      "   macro avg       0.54      0.61      0.50     60584\n",
      "weighted avg       0.85      0.62      0.70     60584\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 标准化预处理\n",
    "import pandas as pd\n",
    "from sklearn.ensemble import IsolationForest\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "# 预删除特征 \n",
    "drop_cols = [\n",
    "    'CUST_NO', 'FLAG', 'is_test', 'entinfo_basic_info_INDS_CD_truncated' \n",
    "]\n",
    "feature_name = [i for i in df_train.columns if i not in drop_cols]\n",
    "X_train = df_train[feature_name].reset_index(drop=True)\n",
    "X_test = df_test[feature_name].reset_index(drop=True)\n",
    "y = df_train['FLAG'].reset_index(drop=True)\n",
    "print(len(feature_name))\n",
    "print(\"训练集维度：{}\".format(X_train.shape))\n",
    "print(\"测试集维度：{}\".format(X_test.shape))\n",
    "X_train = pd.DataFrame(X_train).replace([np.inf, -np.inf], np.nan).fillna(0).values\n",
    "X_test = pd.DataFrame(X_test).replace([np.inf, -np.inf], np.nan).fillna(0).values\n",
    "\n",
    "def sigmoid(x):\n",
    "    return 1.0 / (1+np.exp(-x))\n",
    "\n",
    "folds = 5\n",
    "seeds = [5]    \n",
    "oof = np.zeros(df_train.shape[0])\n",
    "prediction = np.zeros(df_test.shape[0])\n",
    "\n",
    "for seed in seeds:\n",
    "    clf = IsolationForest(n_estimators=100, random_state=42)\n",
    "    \n",
    "    print(\"================{}==============\".format(seed))\n",
    "    skf = StratifiedKFold(n_splits=folds, random_state=seed, shuffle=True)\n",
    "    for index, (trn_idx, val_idx) in enumerate(skf.split(X_train, y)):\n",
    "        X_train_ = X_train[trn_idx]\n",
    "        Y_train = y.iloc[trn_idx]\n",
    "        X_val = X_train[val_idx]\n",
    "        Y_val = y.iloc[val_idx]\n",
    "        \n",
    "        print('\\nFold_{} Training ================================\\n'.format(index + 1))\n",
    "        rf_model = clf.fit(X_train_)\n",
    "        pred_val = 1 - sigmoid(clf.decision_function(X_val))       \n",
    "        oof[val_idx] += pred_val\n",
    "        pred_test = 1 - sigmoid(clf.decision_function(X_test))\n",
    "        prediction += pred_test\n",
    "\n",
    "        del rf_model, pred_val, pred_test, X_train_, Y_train, X_val, Y_val\n",
    "        gc.collect()\n",
    "        \n",
    "    \n",
    "prediction = prediction / (folds*len(seeds))\n",
    "oof = oof / len(seeds)\n",
    "\n",
    "## 二分类最佳阈值搜索\n",
    "# 最佳阈值搜索\n",
    "from sklearn.metrics import classification_report, precision_score, recall_score, f1_score, precision_recall_curve,  roc_curve, auc\n",
    "\n",
    "def do_metrics(y_true, y_pred):\n",
    "    precisions, recalls, thresholds = precision_recall_curve(y_true, y_pred)\n",
    "    f1_scores = (precisions * recalls) / (precisions + recalls)\n",
    "    best_t = thresholds[np.argmax(f1_scores[np.isfinite(f1_scores)])]  # 寻找最佳阈值\n",
    "\n",
    "    y_1 = [1 if x >= best_t else 0 for x in y_pred]\n",
    "    clf_report1 = classification_report(y_true.values, y_1)\n",
    "    curr_f1score = f1_score(y_true, y_1)\n",
    "    recall = recall_score(y_true, y_1)\n",
    "    precision = precision_score(y_true, y_1)\n",
    "        \n",
    "    fpr, tpr ,th = roc_curve(y_true, y_pred)\n",
    "    curr_auc = auc(fpr, tpr)\n",
    "\n",
    "    print(f\"train's precision: {precision}\")\n",
    "    print(f\"train's recall: {recall}\")\n",
    "\n",
    "    print(f\"train's auc: {auc(fpr,tpr)}\")\n",
    "    print(f\"train's ks: {max(tpr-fpr)}\")\n",
    "    print(f\"train's F1: {curr_f1score}\")\n",
    "    print(f\"最佳阈值:  {str(best_t)}\")\n",
    "    print('打印分类报告: ')\n",
    "    print(clf_report1)\n",
    "\n",
    "    return best_t, curr_f1score, curr_auc\n",
    "    \n",
    "\n",
    "best_t, curr_f1score, curr_auc = do_metrics(y, oof)\n",
    "\n",
    "# 绘制roc曲线\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import roc_curve, auc\n",
    "\n",
    "fpr, tpr ,th = roc_curve(y, oof)\n",
    "\n",
    "plt.plot(fpr,tpr, 'k--', label='ROC(area={0:2f})'.format(curr_auc), lw=2)\n",
    "plt.xlim([-0.05, 1.05])\n",
    "plt.ylim([-0.05, 1.05])\n",
    "plt.xlabel('FPR')\n",
    "plt.ylabel('TPR')\n",
    "plt.title('ROC Curve')\n",
    "plt.legend(loc='lower right')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "14c985b2-1634-48a4-99b2-859d668f78ab",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:41:34.528762Z",
     "iopub.status.busy": "2024-11-13T08:41:34.528417Z",
     "iopub.status.idle": "2024-11-13T08:41:34.554256Z",
     "msg_id": "b2192d04-1db2-46db-970b-860152751839",
     "shell.execute_reply": "2024-11-13T08:41:34.553447Z",
     "shell.execute_reply.started": "2024-11-13T08:41:34.528734Z"
    }
   },
   "outputs": [],
   "source": [
    "pkl_name = './feature/20241031_IRF_mbV4-V3_A.pkl'\n",
    "if os.path.exists(pkl_name):\n",
    "    with open(pkl_name, 'rb') as f:\n",
    "        irf_feature_train, irf_feature_test = pickle.load(f)\n",
    "else:\n",
    "    # 保存特征\n",
    "    with open(pkl_name, 'wb') as f:\n",
    "        irf_feature_train = pd.DataFrame({'CUST_NO': df_train[\"CUST_NO\"], \"irf_feat\": oof})\n",
    "        irf_feature_test = pd.DataFrame({'CUST_NO': df_test[\"CUST_NO\"], \"irf_feat\": prediction})\n",
    "        pickle.dump([irf_feature_train, irf_feature_test], f)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1b022114-7778-46d5-9ae7-230b2bfa256d",
   "metadata": {},
   "source": [
    "## 2.2 lgb\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3130b13c-4253-48b3-b918-680034f8c04b",
   "metadata": {},
   "source": [
    "### 2.2.1 特征合并\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "adc1db28-5868-4eeb-9a2c-b4524377f7a2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:41:34.555842Z",
     "iopub.status.busy": "2024-11-13T08:41:34.555429Z",
     "iopub.status.idle": "2024-11-13T08:42:03.200638Z",
     "msg_id": "5ead6021-c9b2-4c4a-ab98-de463717dc1b",
     "shell.execute_reply": "2024-11-13T08:42:03.199787Z",
     "shell.execute_reply.started": "2024-11-13T08:41:34.555812Z"
    }
   },
   "outputs": [],
   "source": [
    "df_train = target_train.merge(nature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(asset_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(prod_hold_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(entinfo_basic_info_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(tr_ibtf_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(tr_tpay_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(aps_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_join_op_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_embed_month_1, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_embed_month_2, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_embed_month_3, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_model_embed_month_1, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_model_embed_month_2, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_model_embed_month_3, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(merch_tr_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(irf_feature_train, on='CUST_NO', how='left')\n",
    "df_train = df_train.merge(mb_join_op_unique_feature_train, on='CUST_NO', how='left')\n",
    "\n",
    "df_test = target_test_a.merge(nature_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(asset_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(prod_hold_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(entinfo_basic_info_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(tr_ibtf_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(tr_tpay_test_a, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(aps_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_join_op_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_embed_month_1, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_embed_month_2, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_embed_month_3, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_model_embed_month_1, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_model_embed_month_2, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_model_embed_month_3, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(merch_tr_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(irf_feature_test, on='CUST_NO', how='left')\n",
    "df_test = df_test.merge(mb_join_op_unique_feature_test, on='CUST_NO', how='left')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c1c9f32-cdf4-4c20-a2e9-bb88cb7af24b",
   "metadata": {},
   "source": [
    "### 2.2.2 特征筛选\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "f64eef14-14c9-42a9-aa41-54e72ef2450c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:42:03.202490Z",
     "iopub.status.busy": "2024-11-13T08:42:03.201915Z",
     "iopub.status.idle": "2024-11-13T08:42:25.891009Z",
     "msg_id": "7ac580b9-b078-41b2-bf9d-770140cbba5f",
     "shell.execute_reply": "2024-11-13T08:42:25.890240Z",
     "shell.execute_reply.started": "2024-11-13T08:42:03.202461Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "剔除高占空比特征前： (60584, 2659)\n",
      "剔除高占空比特征后： (60584, 1981)\n",
      "剔除高占空比特征前： (6230, 2461)\n",
      "剔除高占空比特征后： (6230, 1955)\n",
      "训练测试集特征取交后： (6230, 1944)\n",
      "['DATA_DAT_x', 'nature_DATA_DAT', 'asset_DATA_DAT', 'prod_hold_DATA_DAT', 'entinfo_basic_info_REGPROVIN_CD_esdyearsmin', 'DATA_DAT_y']\n",
      "剔除单一值特征特征后： (6230, 1938)\n",
      "训练测试集分布不一致特征： ['aps_CUST_NO_APSDTRCHL_CUST_NO_count_1f545cee094511114c2c3bd654e432b0_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_5ca49ff93e293058f4c20cc5f79d635b_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_9b9e2ea4b767c480f06e6c7d70da7a60_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_d8d7ad6babc4ba94a23a115142f9fd52_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_f54998193941b896606dbcc6545c8ef4_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_1f545cee094511114c2c3bd654e432b0_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_5ca49ff93e293058f4c20cc5f79d635b_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_9b9e2ea4b767c480f06e6c7d70da7a60_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_d8d7ad6babc4ba94a23a115142f9fd52_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_f54998193941b896606dbcc6545c8ef4_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_5ca49ff93e293058f4c20cc5f79d635b_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_c1f965494f544c50e4d267cab6e923ec_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_f54998193941b896606dbcc6545c8ef4_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_5ca49ff93e293058f4c20cc5f79d635b_div_tr_freq_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_c1f965494f544c50e4d267cab6e923ec_div_tr_freq_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_f54998193941b896606dbcc6545c8ef4_div_tr_freq_out', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_12c02c14bc06dfaba19adb4b7b6c69cc', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_34bc03a8042f296b651ed1ceae318993', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_364277c215811d9deb2fa3711305c8ca', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_66a78cd162a93ae56777a05d40d6eb2b', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_80e6bef3b3b9ee20000f7d952e4bca81', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_95144a5f73586a61fcc3fd8bc52f8bd1', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_aedca2c92566599ea0cedf37c2347171', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_c5c5dc5668fcbde6552db952b3e21c85', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_d33c225aea10c6d131422594deb14b2c', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_f1f02aa0c549bc87243ac2bed9f05cfb', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_fa3a109938578da83f662cf1f32f56d0', 'entinfo_basic_info_REGCAP_to_mean_entinfo_basic_info_REGPROVIN_CD', 'entinfo_basic_info_esdyears_to_mean_entinfo_basic_info_REGPROVIN_CD']\n",
      "剔除分布异常特征特征后： (6230, 1938)\n"
     ]
    }
   ],
   "source": [
    "''' 特征筛选 '''\n",
    "# 剔除缺失值占比超过0.98的特征（NOTE: 重要！训练/测试分开剔除）\n",
    "def stat_df(df):\n",
    "    stats = []\n",
    "    for col in df.columns:\n",
    "        stats.append((col, df[col].nunique(),df[col].isnull().sum()*100/df.shape[0],\n",
    "                     df[col].value_counts(normalize=True,dropna=False).values[0]*100,df[col].dtype))\n",
    "    stats_df = pd.DataFrame(stats, columns=['特征','唯一数数量','缺失值占比','最多数占比','类型'])\n",
    "    stats_df.sort_values('缺失值占比',ascending=False)\n",
    "    return stats_df\n",
    "\n",
    "def del_nan_col(feature):\n",
    "    print(\"剔除高占空比特征前：\", feature.shape)\n",
    "    feature_res = stat_df(feature)\n",
    "    feature_res = feature_res[feature_res['缺失值占比'] <= 98]\n",
    "    feature_names_res = [col for col in feature.columns if col in list(feature_res['特征'])]\n",
    "    feature = feature[feature_names_res]\n",
    "    print(\"剔除高占空比特征后：\", feature.shape)\n",
    "    \n",
    "    return feature \n",
    "\n",
    "df_train = del_nan_col(df_train)\n",
    "df_test = del_nan_col(df_test)\n",
    "\n",
    "# 取特征交集\n",
    "df_test = df_test[[col for col in df_test.columns if col in df_train.columns]]\n",
    "print(\"训练测试集特征取交后：\", df_test.shape)\n",
    "\n",
    "# 剔除单一值特征\n",
    "def search_single (df):\n",
    "    features = []\n",
    "    numerical_feature = list(df.select_dtypes(exclude=['object']).columns)\n",
    "    object_feature = list(df.select_dtypes(include=['object']).columns)\n",
    "    unique_feature = []\n",
    "    other_feature = []\n",
    "    for feature in numerical_feature:\n",
    "        temp = df[feature].nunique()\n",
    "        if temp == 1:\n",
    "            unique_feature.append(feature)\n",
    "        else:\n",
    "            other_feature.append(feature)\n",
    "    features.append(unique_feature)\n",
    "    features.append(other_feature)\n",
    "    features.append(object_feature)\n",
    "    return features\n",
    "unique_cols = search_single(df_train)[0]\n",
    "print(unique_cols)\n",
    "df_train = df_train[[i for i in df_train.columns if i not in unique_cols]]\n",
    "df_test = df_test[[i for i in df_test.columns if i not in unique_cols]]\n",
    "print(\"剔除单一值特征特征后：\", df_test.shape)\n",
    "\n",
    "# 剔除训练测试集差异大的特征\n",
    "drop_adval_cols =  ['aps_CUST_NO_APSDTRCHL_CUST_NO_count_1f545cee094511114c2c3bd654e432b0_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_5ca49ff93e293058f4c20cc5f79d635b_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_9b9e2ea4b767c480f06e6c7d70da7a60_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_d8d7ad6babc4ba94a23a115142f9fd52_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_f54998193941b896606dbcc6545c8ef4_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_1f545cee094511114c2c3bd654e432b0_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_5ca49ff93e293058f4c20cc5f79d635b_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_9b9e2ea4b767c480f06e6c7d70da7a60_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_d8d7ad6babc4ba94a23a115142f9fd52_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_f54998193941b896606dbcc6545c8ef4_div_tr_freq_in', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_5ca49ff93e293058f4c20cc5f79d635b_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_c1f965494f544c50e4d267cab6e923ec_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_f54998193941b896606dbcc6545c8ef4_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_5ca49ff93e293058f4c20cc5f79d635b_div_tr_freq_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_c1f965494f544c50e4d267cab6e923ec_div_tr_freq_out', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_f54998193941b896606dbcc6545c8ef4_div_tr_freq_out', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_12c02c14bc06dfaba19adb4b7b6c69cc', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_34bc03a8042f296b651ed1ceae318993', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_364277c215811d9deb2fa3711305c8ca', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_66a78cd162a93ae56777a05d40d6eb2b', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_80e6bef3b3b9ee20000f7d952e4bca81', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_95144a5f73586a61fcc3fd8bc52f8bd1', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_aedca2c92566599ea0cedf37c2347171', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_c5c5dc5668fcbde6552db952b3e21c85', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_d33c225aea10c6d131422594deb14b2c', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_f1f02aa0c549bc87243ac2bed9f05cfb', 'CUST_NO_merch_tr_dtl_COD_TR_CUST_NO_count_fa3a109938578da83f662cf1f32f56d0', 'entinfo_basic_info_REGCAP_to_mean_entinfo_basic_info_REGPROVIN_CD', 'entinfo_basic_info_esdyears_to_mean_entinfo_basic_info_REGPROVIN_CD']\n",
    "print(\"训练测试集分布不一致特征：\", drop_adval_cols)\n",
    "df_train = df_train[[i for i in df_train.columns if i not in drop_adval_cols]]\n",
    "df_test = df_test[[i for i in df_test.columns if i not in drop_adval_cols]]\n",
    "print(\"剔除分布异常特征特征后：\", df_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd6f530c-55c2-4316-9b8c-984ff1d0924f",
   "metadata": {},
   "source": [
    "### 2.2.3 类别特征编码\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "c16a6288-79b5-4574-92d5-0dcf33e36ac2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:42:25.892441Z",
     "iopub.status.busy": "2024-11-13T08:42:25.892082Z",
     "iopub.status.idle": "2024-11-13T08:42:34.883283Z",
     "msg_id": "00110ae5-c06d-4a51-83d8-033f6682f46e",
     "shell.execute_reply": "2024-11-13T08:42:34.882457Z",
     "shell.execute_reply.started": "2024-11-13T08:42:25.892413Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "合并： (66814, 1948)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 4/4 [00:00<00:00, 71.62it/s]\n"
     ]
    }
   ],
   "source": [
    "''' 类别特征编码 '''\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "from sklearn.model_selection import StratifiedKFold, KFold\n",
    "\n",
    "# 1 特征合并\n",
    "feature = pd.concat([df_train, df_test], axis=0)\n",
    "print(\"合并：\", feature.shape)\n",
    "\n",
    "# 2 顺序编码\n",
    "cat_cols = ['entinfo_basic_info_ENTSTATUS_CD', 'entinfo_basic_info_INDS_CD', 'entinfo_basic_info_REGPROVIN_CD', 'entinfo_basic_info_ENTTYPE_CD']\n",
    "cat_cols = [col for col in df_train.columns if col in cat_cols]\n",
    "for col in tqdm(cat_cols):\n",
    "    map_dict = dict(zip(list(feature[col].value_counts().index), range(feature[col].nunique())))\n",
    "    feature[col] = feature[col].map(map_dict)\n",
    "\n",
    "# 3 OneHot编码\n",
    "cat_cols = ['entinfo_basic_info_ENTSTATUS_CD', 'entinfo_basic_info_REGPROVIN_CD', 'entinfo_basic_info_ENTTYPE_CD']\n",
    "cat_features = feature[cat_cols]\n",
    "cat_col_encoder = OneHotEncoder()\n",
    "cat_features = cat_col_encoder.fit_transform(cat_features).toarray()\n",
    "one_hot_cols = []\n",
    "for i, one_hot_col in enumerate(cat_cols):\n",
    "    one_hot_cols += ['_'.join([one_hot_col, str(int(col)) if not np.isnan(col) else str(col)]) for col in list(cat_col_encoder.categories_[i])]\n",
    "cat_features = pd.DataFrame(cat_features, columns=one_hot_cols)\n",
    "feature.drop(cat_cols, axis=1, inplace=True)\n",
    "feature = pd.concat([feature.reset_index(drop=True), cat_features], axis=1)\n",
    "\n",
    "# 特征拆分\n",
    "df_train = feature[feature.FLAG.notnull()].reset_index(drop=True)\n",
    "df_test = feature[feature.FLAG.isnull()].reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "a8ba3365-6b0b-40cd-a429-b0b832723726",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:42:34.884800Z",
     "iopub.status.busy": "2024-11-13T08:42:34.884438Z",
     "iopub.status.idle": "2024-11-13T08:42:46.098949Z",
     "msg_id": "be575f3d-0b08-430c-9251-72cf15090e4e",
     "shell.execute_reply": "2024-11-13T08:42:46.098176Z",
     "shell.execute_reply.started": "2024-11-13T08:42:34.884772Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1/1 [00:00<00:00,  2.20it/s]\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.79it/s]\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.97it/s]\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.95it/s]\n",
      "100%|██████████| 1/1 [00:00<00:00,  1.80it/s]\n",
      "100%|██████████| 1/1 [00:00<00:00,  2.99it/s]\n"
     ]
    }
   ],
   "source": [
    "# 4 目标编码\n",
    "cat_list = ['entinfo_basic_info_INDS_CD']\n",
    "def stat(df, df_merge, group_by, agg):\n",
    "    group = df.groupby(group_by).agg(agg)\n",
    "    columns = []\n",
    "    for on, methods in agg.items():\n",
    "        for method in methods:\n",
    "            columns.append('{}_{}_{}'.format('_'.join(group_by), on, method))\n",
    "    group.columns = columns\n",
    "    group.reset_index(inplace=True)\n",
    "    df_merge = df_merge.merge(group, on=group_by, how='left')\n",
    "    del (group)\n",
    "    gc.collect()\n",
    "    return df_merge\n",
    "\n",
    "def statis_feat(df_know, df_unknow,cat_list):\n",
    "    for f in tqdm(cat_list):\n",
    "        df_unknow = stat(df_know, df_unknow, [f], {'FLAG': ['mean']})\n",
    "    return df_unknow\n",
    "df_stas_feat = None\n",
    "kf = StratifiedKFold(n_splits=5, random_state=2020, shuffle=True)\n",
    "for train_index, val_index in kf.split(df_train, df_train['FLAG']):\n",
    "    df_fold_train = df_train.iloc[train_index]\n",
    "    df_fold_val = df_train.iloc[val_index]\n",
    "    df_fold_val = statis_feat(df_fold_train, df_fold_val, cat_list)\n",
    "    df_stas_feat = pd.concat([df_stas_feat, df_fold_val], axis=0)\n",
    "    del (df_fold_train)\n",
    "    del (df_fold_val)\n",
    "    gc.collect()\n",
    "df_stas_feat_test = statis_feat(df_train, df_test, cat_list)\n",
    "df_train = pd.DataFrame(df_stas_feat)\n",
    "df_test = pd.DataFrame(df_stas_feat_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1aebfb54-3e44-4859-8d74-8ca619c77054",
   "metadata": {},
   "source": [
    "### 2.2.4 模型训练\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "b2a9b1b4-b840-4b4c-82a9-dce6b33f3bb1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:42:46.102012Z",
     "iopub.status.busy": "2024-11-13T08:42:46.101502Z",
     "iopub.status.idle": "2024-11-13T08:49:30.897697Z",
     "msg_id": "754240dc-bdbb-46ae-a960-f62454729f36",
     "shell.execute_reply": "2024-11-13T08:49:30.896990Z",
     "shell.execute_reply.started": "2024-11-13T08:42:46.101983Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1987\n",
      "训练集维度：(60584, 1987)\n",
      "测试集维度：(6230, 1987)\n",
      "5 --------------------------------------------------------------------------------------------\n",
      "Training until validation scores don't improve for 200 rounds\n",
      "[100]\ttraining's auc: 0.774141\tvalid_1's auc: 0.755686\n",
      "[200]\ttraining's auc: 0.789488\tvalid_1's auc: 0.762687\n",
      "[300]\ttraining's auc: 0.803365\tvalid_1's auc: 0.768553\n",
      "[400]\ttraining's auc: 0.814563\tvalid_1's auc: 0.772649\n",
      "[500]\ttraining's auc: 0.824236\tvalid_1's auc: 0.775146\n",
      "[600]\ttraining's auc: 0.832927\tvalid_1's auc: 0.777592\n",
      "[700]\ttraining's auc: 0.841179\tvalid_1's auc: 0.778583\n",
      "[800]\ttraining's auc: 0.848652\tvalid_1's auc: 0.779534\n",
      "[900]\ttraining's auc: 0.855418\tvalid_1's auc: 0.780271\n",
      "[1000]\ttraining's auc: 0.862024\tvalid_1's auc: 0.780636\n",
      "[1100]\ttraining's auc: 0.868108\tvalid_1's auc: 0.781007\n",
      "[1200]\ttraining's auc: 0.873878\tvalid_1's auc: 0.781123\n",
      "[1300]\ttraining's auc: 0.879498\tvalid_1's auc: 0.78144\n",
      "[1400]\ttraining's auc: 0.884819\tvalid_1's auc: 0.78129\n",
      "Early stopping, best iteration is:\n",
      "[1287]\ttraining's auc: 0.878822\tvalid_1's auc: 0.781526\n",
      "[LightGBM] [Warning] num_threads is set with n_jobs=24, nthread=24 will be ignored. Current value: num_threads=24\n",
      "Training until validation scores don't improve for 200 rounds\n",
      "[100]\ttraining's auc: 0.774216\tvalid_1's auc: 0.749126\n",
      "[200]\ttraining's auc: 0.790763\tvalid_1's auc: 0.757571\n",
      "[300]\ttraining's auc: 0.804234\tvalid_1's auc: 0.764746\n",
      "[400]\ttraining's auc: 0.8151\tvalid_1's auc: 0.769561\n",
      "[500]\ttraining's auc: 0.824512\tvalid_1's auc: 0.772078\n",
      "[600]\ttraining's auc: 0.833225\tvalid_1's auc: 0.773586\n",
      "[700]\ttraining's auc: 0.841379\tvalid_1's auc: 0.774985\n",
      "[800]\ttraining's auc: 0.848725\tvalid_1's auc: 0.776186\n",
      "[900]\ttraining's auc: 0.855626\tvalid_1's auc: 0.776337\n",
      "[1000]\ttraining's auc: 0.862265\tvalid_1's auc: 0.776527\n",
      "[1100]\ttraining's auc: 0.868159\tvalid_1's auc: 0.776908\n",
      "[1200]\ttraining's auc: 0.874158\tvalid_1's auc: 0.776904\n",
      "[1300]\ttraining's auc: 0.879615\tvalid_1's auc: 0.776832\n",
      "[1400]\ttraining's auc: 0.884684\tvalid_1's auc: 0.776748\n",
      "Early stopping, best iteration is:\n",
      "[1261]\ttraining's auc: 0.877499\tvalid_1's auc: 0.777044\n",
      "[LightGBM] [Warning] num_threads is set with n_jobs=24, nthread=24 will be ignored. Current value: num_threads=24\n",
      "Training until validation scores don't improve for 200 rounds\n",
      "[100]\ttraining's auc: 0.775127\tvalid_1's auc: 0.747997\n",
      "[200]\ttraining's auc: 0.790987\tvalid_1's auc: 0.757985\n",
      "[300]\ttraining's auc: 0.804356\tvalid_1's auc: 0.765477\n",
      "[400]\ttraining's auc: 0.815689\tvalid_1's auc: 0.770138\n",
      "[500]\ttraining's auc: 0.825315\tvalid_1's auc: 0.772912\n",
      "[600]\ttraining's auc: 0.833337\tvalid_1's auc: 0.774642\n",
      "[700]\ttraining's auc: 0.84153\tvalid_1's auc: 0.775994\n",
      "[800]\ttraining's auc: 0.848643\tvalid_1's auc: 0.777234\n",
      "[900]\ttraining's auc: 0.855613\tvalid_1's auc: 0.777781\n",
      "[1000]\ttraining's auc: 0.862404\tvalid_1's auc: 0.778437\n",
      "[1100]\ttraining's auc: 0.868474\tvalid_1's auc: 0.778736\n",
      "[1200]\ttraining's auc: 0.87418\tvalid_1's auc: 0.779131\n",
      "[1300]\ttraining's auc: 0.87984\tvalid_1's auc: 0.779362\n",
      "[1400]\ttraining's auc: 0.885547\tvalid_1's auc: 0.77928\n",
      "[1500]\ttraining's auc: 0.89064\tvalid_1's auc: 0.779463\n",
      "[1600]\ttraining's auc: 0.895694\tvalid_1's auc: 0.779689\n",
      "[1700]\ttraining's auc: 0.900595\tvalid_1's auc: 0.779339\n",
      "Early stopping, best iteration is:\n",
      "[1569]\ttraining's auc: 0.894229\tvalid_1's auc: 0.779801\n",
      "[LightGBM] [Warning] num_threads is set with n_jobs=24, nthread=24 will be ignored. Current value: num_threads=24\n",
      "Training until validation scores don't improve for 200 rounds\n",
      "[100]\ttraining's auc: 0.773771\tvalid_1's auc: 0.751176\n",
      "[200]\ttraining's auc: 0.788775\tvalid_1's auc: 0.761126\n",
      "[300]\ttraining's auc: 0.802491\tvalid_1's auc: 0.769475\n",
      "[400]\ttraining's auc: 0.813775\tvalid_1's auc: 0.77411\n",
      "[500]\ttraining's auc: 0.823908\tvalid_1's auc: 0.776686\n",
      "[600]\ttraining's auc: 0.832703\tvalid_1's auc: 0.778991\n",
      "[700]\ttraining's auc: 0.840712\tvalid_1's auc: 0.78029\n",
      "[800]\ttraining's auc: 0.848008\tvalid_1's auc: 0.781339\n",
      "[900]\ttraining's auc: 0.854922\tvalid_1's auc: 0.78169\n",
      "[1000]\ttraining's auc: 0.86134\tvalid_1's auc: 0.782358\n",
      "[1100]\ttraining's auc: 0.867703\tvalid_1's auc: 0.78251\n",
      "[1200]\ttraining's auc: 0.873271\tvalid_1's auc: 0.782618\n",
      "[1300]\ttraining's auc: 0.878918\tvalid_1's auc: 0.782911\n",
      "[1400]\ttraining's auc: 0.884074\tvalid_1's auc: 0.783007\n",
      "[1500]\ttraining's auc: 0.889344\tvalid_1's auc: 0.783218\n",
      "[1600]\ttraining's auc: 0.894166\tvalid_1's auc: 0.783147\n",
      "[1700]\ttraining's auc: 0.898862\tvalid_1's auc: 0.7831\n",
      "Early stopping, best iteration is:\n",
      "[1534]\ttraining's auc: 0.891082\tvalid_1's auc: 0.783376\n",
      "[LightGBM] [Warning] num_threads is set with n_jobs=24, nthread=24 will be ignored. Current value: num_threads=24\n",
      "Training until validation scores don't improve for 200 rounds\n",
      "[100]\ttraining's auc: 0.771299\tvalid_1's auc: 0.754544\n",
      "[200]\ttraining's auc: 0.787122\tvalid_1's auc: 0.76425\n",
      "[300]\ttraining's auc: 0.801015\tvalid_1's auc: 0.773134\n",
      "[400]\ttraining's auc: 0.812301\tvalid_1's auc: 0.778705\n",
      "[500]\ttraining's auc: 0.822039\tvalid_1's auc: 0.782323\n",
      "[600]\ttraining's auc: 0.830899\tvalid_1's auc: 0.784478\n",
      "[700]\ttraining's auc: 0.83891\tvalid_1's auc: 0.785793\n",
      "[800]\ttraining's auc: 0.84661\tvalid_1's auc: 0.786372\n",
      "[900]\ttraining's auc: 0.853609\tvalid_1's auc: 0.787425\n",
      "[1000]\ttraining's auc: 0.860046\tvalid_1's auc: 0.787659\n",
      "[1100]\ttraining's auc: 0.866359\tvalid_1's auc: 0.788076\n",
      "[1200]\ttraining's auc: 0.872632\tvalid_1's auc: 0.788733\n",
      "[1300]\ttraining's auc: 0.877914\tvalid_1's auc: 0.788682\n",
      "[1400]\ttraining's auc: 0.883723\tvalid_1's auc: 0.788924\n",
      "[1500]\ttraining's auc: 0.888925\tvalid_1's auc: 0.788984\n",
      "[1600]\ttraining's auc: 0.893513\tvalid_1's auc: 0.789068\n",
      "Early stopping, best iteration is:\n",
      "[1432]\ttraining's auc: 0.885525\tvalid_1's auc: 0.789228\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "424"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import os\n",
    "import gc\n",
    "import random\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import lightgbm as lgb\n",
    "from sklearn.model_selection import StratifiedKFold, KFold\n",
    "from sklearn.metrics import roc_auc_score,f1_score\n",
    "\n",
    "# 预删除特征 \n",
    "drop_cols = [\n",
    "    'CUST_NO', 'FLAG', 'is_test', 'entinfo_basic_info_INDS_CD_truncated' \n",
    "]\n",
    "feature_name = [i for i in df_train.columns if i not in drop_cols]\n",
    "\n",
    "X_train = df_train[feature_name].reset_index(drop=True)\n",
    "X_test = df_test[feature_name].reset_index(drop=True)\n",
    "y = df_train['FLAG'].reset_index(drop=True)\n",
    "print(len(feature_name))\n",
    "print(\"训练集维度：{}\".format(X_train.shape))\n",
    "print(\"测试集维度：{}\".format(X_test.shape))\n",
    "\n",
    "# 固定随机种子\n",
    "def set_seed(seed=2020):\n",
    "    random.seed(seed)\n",
    "    os.environ['PYTHONHASHSEED'] = str(seed)\n",
    "    np.random.seed(seed)\n",
    "    # torch.manual_seed(seed)\n",
    "set_seed(2020)  # 控制系统变量\n",
    "\n",
    "seeds = [5, 4, 2, 209, 4096, 2048, 1024, 2015, 1015, 820]\n",
    "num_model_seed = 1  # HACK: 4\n",
    "oof = np.zeros(X_train.shape[0])\n",
    "prediction = np.zeros(X_test.shape[0])\n",
    "pred = []\n",
    "feat_imp_df = pd.DataFrame({'feats': feature_name, 'imp': 0})\n",
    "parameters = {\n",
    "    'boosting_type': 'gbdt',\n",
    "    'objective': 'binary',\n",
    "    'metric': ['logloss', 'auc'],\n",
    "    'min_child_weight': 10,\n",
    "    'num_leaves': 2 ** 4,\n",
    "    'lambda_l1': 0.1,\n",
    "    'lambda_l2':10,\n",
    "    'feature_fraction': 0.8, \n",
    "    'bagging_fraction': 0.8, \n",
    "    'bagging_freq': 4,\n",
    "    'learning_rate': 0.01,\n",
    "    'seed': 2020,\n",
    "    'nthread': 24,\n",
    "    'n_jobs': 24,\n",
    "    'verbose': -1,\n",
    "}\n",
    "fold = 5\n",
    "for model_seed in range(num_model_seed):\n",
    "    print(seeds[model_seed],\"--------------------------------------------------------------------------------------------\")\n",
    "    oof_cat = np.zeros(X_train.shape[0])\n",
    "    prediction_cat = np.zeros(X_test.shape[0])\n",
    "    skf = StratifiedKFold(n_splits=fold, random_state=seeds[model_seed], shuffle=True)\n",
    "    for index, (train_index, test_index) in enumerate(skf.split(X_train, y)):\n",
    "        train_x, test_x, train_y, test_y = X_train[feature_name].iloc[train_index], X_train[feature_name].iloc[test_index], y.iloc[train_index], y.iloc[test_index]\n",
    "        dtrain = lgb.Dataset(train_x, label=train_y)\n",
    "        dval = lgb.Dataset(test_x, label=test_y)\n",
    "        lgb_model = lgb.train(\n",
    "            parameters, \n",
    "            dtrain, \n",
    "            num_boost_round=50000, \n",
    "            valid_sets=[dtrain, dval], \n",
    "            callbacks=[lgb.early_stopping(200),lgb.log_evaluation(100)],\n",
    "            init_model=None\n",
    "        )\n",
    "        oof_cat[test_index] += lgb_model.predict(test_x,num_iteration=lgb_model.best_iteration)\n",
    "        prediction_cat += lgb_model.predict(X_test,num_iteration=lgb_model.best_iteration) / fold\n",
    "        feat_imp_df['imp'] += lgb_model.feature_importance()\n",
    "        del train_x\n",
    "        del test_x\n",
    "        del train_y\n",
    "        del test_y\n",
    "        # del lgb_model  # TODO\n",
    "    oof += oof_cat / num_model_seed\n",
    "    prediction += prediction_cat / num_model_seed\n",
    "    pred.append(prediction_cat)\n",
    "gc.collect()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "3b471c72-21fd-4cea-87bf-28e9444acf84",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:49:30.899038Z",
     "iopub.status.busy": "2024-11-13T08:49:30.898689Z",
     "iopub.status.idle": "2024-11-13T08:49:31.629339Z",
     "msg_id": "f3baff2f-280b-4607-aa58-30a9f92b8daa",
     "shell.execute_reply": "2024-11-13T08:49:31.628623Z",
     "shell.execute_reply.started": "2024-11-13T08:49:30.899011Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_1737922/3432962953.py:8: RuntimeWarning: invalid value encountered in true_divide\n",
      "  f1_scores = (precisions * recalls) / (precisions + recalls)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train's precision: 0.27845824411134906\n",
      "train's recall: 0.512937835279268\n",
      "train's auc: 0.7821441729399654\n",
      "train's ks: 0.42659728997501856\n",
      "train's F1: 0.36096152778548823\n",
      "train's F2: 0.18048076389274417\n",
      "最佳阈值:  0.16670383481446738\n",
      "打印分类报告: \n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "         0.0       0.94      0.84      0.89     54246\n",
      "         1.0       0.28      0.51      0.36      6338\n",
      "\n",
      "    accuracy                           0.81     60584\n",
      "   macro avg       0.61      0.68      0.62     60584\n",
      "weighted avg       0.87      0.81      0.83     60584\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## 二分类最佳阈值搜索\n",
    "# 最佳阈值搜索\n",
    "from sklearn.metrics import classification_report, precision_score, recall_score, f1_score, precision_recall_curve,  roc_curve, auc\n",
    "\n",
    "def do_metrics(y_true, y_pred):\n",
    "    precisions, recalls, thresholds = precision_recall_curve(y_true, y_pred)\n",
    "    \n",
    "    f1_scores = (precisions * recalls) / (precisions + recalls)\n",
    "    best_t = thresholds[np.argmax(f1_scores[np.isfinite(f1_scores)])]  # 寻找最佳阈值\n",
    "    \n",
    "    y_1 = [1 if x >= best_t else 0 for x in y_pred]\n",
    "    clf_report1 = classification_report(y_true.values, y_1)\n",
    "    curr_f1score = f1_score(y_true, y_1)\n",
    "    recall = recall_score(y_true, y_1)\n",
    "    precision = precision_score(y_true, y_1)\n",
    "    F_score = (precision * recall) / (precision + recall)\n",
    "    fpr, tpr ,th = roc_curve(y_true, y_pred)\n",
    "\n",
    "    print(f\"train's precision: {precision}\")\n",
    "    print(f\"train's recall: {recall}\")\n",
    "    print(f\"train's auc: {auc(fpr,tpr)}\")\n",
    "    \n",
    "    print(f\"train's ks: {max(tpr-fpr)}\")\n",
    "    print(f\"train's F1: {curr_f1score}\")\n",
    "    print(f\"train's F2: {F_score}\")\n",
    "    print(f\"最佳阈值:  {str(best_t)}\")\n",
    "    print('打印分类报告: ')\n",
    "    print(clf_report1)\n",
    "\n",
    "    return best_t, curr_f1score, F_score\n",
    "\n",
    "best_t, curr_f1score, F_score = do_metrics(y, oof)\n",
    "\n",
    "# tpr/fpr曲线\n",
    "import seaborn as sns\n",
    "from sklearn.metrics import roc_curve, auc\n",
    "fpr, tpr ,th = roc_curve(y, oof)\n",
    "data_p=pd.DataFrame()\n",
    "data_p['tpr'] = tpr\n",
    "data_p['fpr'] = fpr\n",
    "data_p['diff'] = tpr-fpr\n",
    "sns.lineplot(data=data_p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "74f9ec85-00bd-4347-afcf-e2aa664b8592",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:49:31.630846Z",
     "iopub.status.busy": "2024-11-13T08:49:31.630344Z",
     "iopub.status.idle": "2024-11-13T08:49:33.276024Z",
     "msg_id": "95ba2135-3deb-430c-b078-47e61621d7c4",
     "shell.execute_reply": "2024-11-13T08:49:33.275296Z",
     "shell.execute_reply.started": "2024-11-13T08:49:31.630818Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['entinfo_basic_info_ESDATE_diff_DATA_DAT', 'asset_AST_YAVER_AUM_BAL', 'nature_NTRL_CUST_AGE', 'IBTF_YEAR_TR_AMT', 'asset_DEBT_LOAN_BAL_YAVER', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_0344a1c16cfcb952dffba70a37ab4da9_div_tr_freq_in', 'IBTF_YEAR_TR_AMT_IN', 'entinfo_basic_info_REGPROVIN_CD_esdyearsmean', 'entinfo_basic_info_REGPROVIN_CD_REGCAP_min', 'entinfo_basic_info_REGPROVIN_CD_esdyearsmax', 'entinfo_basic_info_INDS_CD_FLAG_mean', 'entinfo_basic_info_REGCAP', 'entinfo_basic_info_REGPROVIN_CD_REGCAP_mean', 'CUST_NO_mb_pageview_dtl_REFERRER_MODEL_NAME_text_count_sum_c99a39f3c62ae02128cdb0acf5c1d2dd_6bb41067851861502c74edd3b31005ae', 'TPAY_WX_MOTH_TR_AMT', 'asset_DEBT_LOAN_BAL_MAVER', 'merch_tr_max_amt_days_to_now_0', 'CUST_NO_mb_pageview_dtl_REFERRER_MODEL_NAME_text_count_mean_c99a39f3c62ae02128cdb0acf5c1d2dd_c99a39f3c62ae02128cdb0acf5c1d2dd', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_TITLE_text_emb_31_32_First', 'TPAY_WX_SEAN_TR_AMT', 'asset_DEBT_LOAN_BAL_SAVER', 'CUST_NO_max_nunique_days_to_now_c99a39f3c62ae02128cdb0acf5c1d2dd', 'asset_AST_SAVER_AUM_BAL', 'IBTF2_YEAR_TR_AMT_NET_div_ALL', 'CUST_NO_max_count_days_to_now_c99a39f3c62ae02128cdb0acf5c1d2dd', 'asset2_SAVER_AUM_div_FA', 'asset2_DAY_DP_div_LOAN', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_min_0_in', 'asset2_AST_SAVER_FA_BAL', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_sum_0_in', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_sum_0_out', 'TPAY_SEAN_TR_AMT', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_mean_0_out', 'CUST_NO_mb_pageview_dtl_REFERRER_MODEL_NAME_text_count_sum_c99a39f3c62ae02128cdb0acf5c1d2dd_a780b0fb118f24e312c529fa155a9842', 'asset_AST_MAVER_AUM_BAL', 'entinfo_basic_info_REGPROVIN_CD_esdyearsstd', 'merch_tr_recent_days_to_now_0', 'CUST_NO_max_count_days_to_now_b3ab3a75ec639b57bcfa5464d2beb2e3', 'CUST_NO_max_nunique_days_to_now_a780b0fb118f24e312c529fa155a9842', 'aps_CUST_NO_APSDTRCHL_CUST_NO_count_2be0e6cf9dab3119ff0391c27dec73c2_div_tr_freq_out', 'asset_AST_YAVER_DP_BAL', 'asset2_AST_DAY_FA_BAL', 'CUST_NO_max_count_days_to_now_e1db7167ba7354e6f7726a826157b01d', 'aps_CUST_NO_APSDTRCHL_APSDTRAMT_skew_2be0e6cf9dab3119ff0391c27dec73c2_out', 'asset_DEBT_LOAN_BAL', 'merch_tr_maxminamt_diff_2', 'entinfo_basic_info_INDS_CD', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_TITLE_text_emb_29_32_First', 'asset2_AST_YAVER_TD_BAL', 'IBTF2_YEAR_TR_AMT_OUT_each', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_MDDEL_NAME_text_emb_16_32_First', 'aps_in_out_maxamt_days_diff_1_', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_MDDEL_NAME_text_emb_19_32_Third', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_mean_0_in', 'CUST_NO_merch_tr_dtl_COD_TR_merch_tr_dtl_AMT_TR_kurt_7c201ee9b1e9534225f62e7f5eabb571', 'TPAY_ALI_SEAN_TR_AMT', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_std_2_in', 'aps_in_out_max_absamt_diff_0_', 'CUST_NO_max_count_days_to_now_6bb41067851861502c74edd3b31005ae', 'CUST_NO_mb_pageview_dtl_REFERRER_MODEL_NAME_text_count_sum_c99a39f3c62ae02128cdb0acf5c1d2dd_c99a39f3c62ae02128cdb0acf5c1d2dd', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_median_0_in', 'aps_CUST_NO_APSDTRCHL_APSDTRAMT_max_0344a1c16cfcb952dffba70a37ab4da9_out', 'TPAY_MOTH_TR_AMT', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_TITLE_text_emb_8_32_Third', 'TPAY2_OTHER_MOTH_TR_AMT', 'aps_CUST_NO_APSDTRCHL_APSDTRAMT_max_2be0e6cf9dab3119ff0391c27dec73c2_in', 'entinfo_basic_info_REGPROVIN_CD_14', 'TPAY2_TPAY_WX_MOTH_TR_AMT_each', 'TPAY_ALI_MOTH_TR_AMT', 'merch_tr_maxminamt_diff_0', 'CUST_NO_merch_tr_dtl_COD_TR_merch_tr_dtl_AMT_TR_sum_7c201ee9b1e9534225f62e7f5eabb571', 'CUST_NO_mb_pageview_dtl_REFERRER_MODEL_NAME_text_count_std_f0e4745172d74e9a04b3313dd8a9f4ee_e1db7167ba7354e6f7726a826157b01d', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_TITLE_text_emb_3_32_Third', 'CUST_NO_merch_tr_dtl_COD_TR_merch_tr_dtl_AMT_TR_min_7c201ee9b1e9534225f62e7f5eabb571', 'IBTF2_YEAR_TR_AMT_OUT', 'entinfo_basic_info_REGPROVIN_CD_6', 'aps_CUST_NO_APSDTRCHL_APSDTRAMT_std_2be0e6cf9dab3119ff0391c27dec73c2_in', 'asset_AST_DAY_AUM_BAL', 'aps_max_amt_days_to_now_0_in_', 'CUST_NO_max_nunique_days_to_now_6bb41067851861502c74edd3b31005ae', 'CUST_NO_max_count_days_to_now_a72547450932263fae5aff76dc29ef1f', 'asset_AST_SAVER_DP_BAL', 'asset2_AST_MAVER_FA_BAL', 'merch_tr_max_amt_0', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_MDDEL_NAME_text_emb_12_32_Second', 'IBTF2_YEAR_TR_CNT_NET_div_ALL', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_MDDEL_NAME_text_emb_27_32_First', 'CUST_NO_mb_pageview_dtl_REFERRER_MODEL_NAME_text_count_max_c99a39f3c62ae02128cdb0acf5c1d2dd_6bb41067851861502c74edd3b31005ae', 'asset2_YAVER_DP_div_LOAN', 'TPAY2_TPAY_SEAN_TR_AMT_each', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_MDDEL_NAME_text_emb_11_32_Third', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_kurt_0_out', 'aps_CUST_NO_APSDTRCHL_APSDTRAMT_std_e8bdc6ed7071aee36e00dd268b5c4e4e_in', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_TITLE_text_emb_1_32_Second', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_median_1_out', 'aps_CUST_NO_APSDTRCHL_APSDTRAMT_skew_2be0e6cf9dab3119ff0391c27dec73c2_in', 'CUST_NO_mb_pageview_dtl_MODEL_NAME_mb_pageview_dtl_REFERRER_TITLE_text_nunique_6bb41067851861502c74edd3b31005ae', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_std_1_out', 'CUST_NO_date_months_to_now_mb_pageview_dtl_REFERRER_MDDEL_NAME_text_emb_0_32_First', 'aps_CUST_NO_date_months_to_now_APSDTRAMT_min_1_in']\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAACmAAAAZDCAYAAADi320eAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3jO1//H8VeG7CUxkhCCiBAE1Zq1NbFaSkVICar2aKVGa8Ruq1arrZVBi9iqpRRF7VVBjRgt8W2jWiPEluT3hyv3zy3zJpqO5+O6PteVnHM+57w/5/4k+v16ex+ztLS0NAEAAAAAAAAAAAAAAAAAACDXzPM7AAAAAAAAAAAAAAAAAAAAgH8aEjABAAAAAAAAAAAAAAAAAABMRAImAAAAAAAAAAAAAAAAAACAiUjABAAAAAAAAAAAAAAAAAAAMBEJmAAAAAAAAAAAAAAAAAAAACYiARMAAAAAAAAAAAAAAAAAAMBEJGACAAAAAAAAAAAAAAAAAACYiARMAAAAAAAAAAAAAAAAAAAAE1nmdwAAAAAAAAD5KTU1Vb/99pscHR1lZmaW3+EAAAAAAAAAAIB8lJaWphs3bsjT01Pm5tnXuCQBEwAAAAAA/Kf99ttv8vLyyu8wAAAAAAAAAADA38iFCxdUvHjxbMeQgAkAAAAAAP7THB0dJT38P1KcnJzyORoAAAAAAAAAAJCfrl+/Li8vL8PfH2SHBEwAAAAAAPCfln7suJOTEwmYAAAAAAAAAABA0v///UF2SMAEAAAAAACQVG/EYllY2+Z3GAAAAAAAAAAAPFMHJ3fO7xD+NczzOwAAAAAAAAAAAAAAAAAAAIB/GhIwAQAAAAAAAAAAAAAAAAAATEQCJgAAAAAAAAAAAAAAAAAAgIlIwAQAAAAAAAAAAAAAAAAAADARCZgAAAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAADARCRgAgAAAPjHMTMz0+rVq026Z/Xq1fLx8ZGFhYUGDRr01DF4e3tr+vTpTz1PVrZu3SozMzNdu3btqedq0KCByc988uRJ1axZUzY2NqpSpcpTx4CHHn13z507JzMzM8XFxRn6d+7cqUqVKqlAgQJq3bp1lm0AAAAAAAAAAADIfyRgAgAAAPjbioiIyDT5LzExUc2aNTNprp49e6pdu3a6cOGCxo0bl0cRPju1a9dWYmKinJ2dn3qulStXmvzMo0ePlr29veLj47V58+anjiEiIkJmZmYZLj8/P8OYX375RR07dpSnp6dsbGxUvHhxvfLKKzp58qRhzKP32tvbq2zZsgoLC9PBgwczXfd///ufrKysVLFixRxjefSSpLCwsEz7goKCnno/JMnLy0uJiYlGsb399tuqUqWKfvnlF8XExGTZlpX0pM70y9HRUf7+/urbt69Onz6d6T27d++WhYWFWrRoYWjL6tnTL29vb8PYSZMmycLCQpMnTzbp+WNiYgzzWVhYqGDBgqpRo4bGjh2rpKSkTO/JbC1vb+9sYw0LCzMpLgAAAAAAAAAAgNwiARMAAADAP467u7usra1zPT45OVmXLl1SYGCgPD095ejo+AyjyxtWVlZyd3c3JAM+DVdXV5Of+ezZs6pbt65KliwpNze3p45Bkvz9/ZWYmGh07dixQ5J0//59NW3aVElJSVq5cqXi4+O1ZMkSVapUKUMV0OjoaCUmJurYsWP69NNPlZycrBo1amjBggUZ1oyJiVH79u11/fp17d27V5IUHh5uFEPx4sU1duxYo7Z0QUFBGWJevHhxnuyHhYWF3N3dZWlpaWg7e/asGjVqpOLFi8vFxSXLtpxs2rRJiYmJOnz4sCZOnKgTJ04oICAg02TayMhI9e/fXz/88IN+++03SdKMGTMy7Ef6vicmJmr//v2G+6OiojRkyBBFRUWZvAdOTk5KTEzU//73P+3atUtvvvmmFixYoCpVqhhieVRma+3fv98Q14oVKyRJ8fHxhrYZM2aYHBcAAAAAAAAAAEBukIAJAAAA4JlJTU3VpEmTVKpUKdna2iogIEDLly+X9P9HbG/evFnVq1eXnZ2dateurfj4eEkPE+fGjBmjw4cPGyrZpVf/y+wY55UrV6phw4ays7NTQECAdu/ebVgnPfmwUaNGMjMz09atWyVJK1askL+/v6ytreXt7a0pU6aY9Hw3btxQSEiI7O3tVaxYMX366adG/VOnTlWlSpVkb28vLy8v9enTR8nJyYb+8+fPq1WrVipYsKDs7e3l7++vdevWGe3Po8mHO3fuVIMGDWRnZ6eCBQsqMDBQV69ezTHOx48g9/b21sSJE9WtWzc5OjqqRIkSmjNnjqHfzMxMBw8e1NixY2VmZqaIiAhJ0tGjR9WoUSPZ2trKzc1Nb775ptHz5MTS0lLu7u5GV6FChSRJx44d09mzZ/XZZ5+pZs2aKlmypOrUqaPx48erZs2aRvO4uLjI3d1d3t7eeumll7R8+XJ16tRJ/fr1M9qPtLQ0RUdH6/XXX1fHjh0VGRkpSXJwcDCKwcLCQo6OjkZt6aytrTPEXLBgwVw97+nTp1WvXj3Z2NioQoUK2rhxo1H/o0eQp399+fJldevWzfC+Z9aWG25ubnJ3d1fp0qX1yiuvaNOmTapRo4a6d++ulJQUw7jk5GQtWbJEvXv3VosWLQzzOzs7Z9iP9H13d3dX4cKFJUnbtm3T7du3NXbsWF2/fl27du3KVXzpzMzM5O7uLg8PD5UvX17du3fXrl27lJycrCFDhhiNzWqtwoULG+JydXWVJBUpUsTQlhdVZAEAAAAAAAAAADJDAiYAAACAZ2bSpElasGCBZs2apWPHjumtt95SaGiotm3bZhjz3nvvacqUKTpw4IAsLS3VrVs3SVJwcLAGDx5sVDUxODg4y7Xee+89hYeHKy4uTr6+vgoJCdGDBw+MkjpXrFihxMRE1a5dWwcPHlT79u3VoUMHHT16VBERERo5cmSuE9wkafLkyQoICNChQ4c0bNgwDRw40CjJztzcXB9//LGOHTum+fPn6/vvvzdKKuvbt6/u3r2rH374QUePHtUHH3wgBweHTNeKi4tT48aNVaFCBe3evVs7duxQq1atjJLpTDFlyhRVr15dhw4dUp8+fdS7d2/DPiUmJsrf31+DBw9WYmKiwsPDdfPmTQUGBqpgwYLav3+/li1bpk2bNqlfv35PtP7jChcuLHNzcy1fvvyJnumtt97SjRs3jPZ/y5YtunXrlpo0aaLQ0FDFxsbq5s2beRJvTlJTU/Xqq6/KyspKe/fu1axZszR06NAsx6cfR+7k5KTp06crMTFRr732Woa27H4GsmNubq6BAwfq/PnzRse1L126VH5+fipXrpxCQ0MVFRWltLS0XM8bGRmpkJAQFShQQCEhIYYk16dRpEgRderUSWvWrDF6F/Jyrbt37+r69etGFwAAAAAAAAAAgKlIwAQAAADwTNy9e1cTJ05UVFSUAgMDVbp0aYWFhSk0NFSzZ882jJswYYLq16+vChUqaNiwYdq1a5fu3LkjW1tbOTg4GFVNtLW1zXK98PBwtWjRQr6+vhozZozOnz+vM2fOyMrKSkWKFJH08Chud3d3WVlZaerUqWrcuLFGjhwpX19fhYWFqV+/fpo8eXKun7FOnToaNmyYfH191b9/f7Vr107Tpk0z9A8aNEgNGzaUt7e3GjVqpPHjx2vp0qWG/oSEBNWpU0eVKlVS6dKl1bJlS9WrVy/TtT788ENVr15dn332mQICAuTv769+/foZKkiaqnnz5urTp498fHw0dOhQFSpUSFu2bJEkw7HY6ZUiHRwctGjRIt25c0cLFixQxYoV1ahRI82cOVNffPGFfv/991ytefToUTk4OBhdvXr1kiQVK1ZMH3/8sUaNGqWCBQuqUaNGGjdunH7++edcze3n5yfpYVXJdJGRkerQoYMsLCxUsWJFlS5dWsuWLTNhl6RvvvkmQ8wTJ07M8b5Nmzbp5MmTWrBggQICAlSvXr1s70s/jtzMzMxQfdLe3j5DW3Y/AznJao9CQ0MlPTxuPSkpyShBOjvXr1/X8uXLDfeHhoZq6dKlJlVFzS7WGzdu6PLly89krUmTJsnZ2dlweXl5PXXMAAAAAAAAAADgv4cETAAAAADPxJkzZ3Tr1i01bdrUKHltwYIFOnv2rGFc5cqVDV97eHhIki5dumTyeqbOc+LECdWpU8eorU6dOjp9+nSuKzDWqlUrw/cnTpwwfL9p0yY1btxYxYoVk6Ojo15//XVdvnxZt27dkiQNGDBA48ePV506dTR69GgdOXIky7XSK2DmlUf3K/0Y6Jz2KyAgQPb29oa2OnXqKDU11VA5MyflypVTXFyc0TV27FhDf9++fXXx4kUtXLhQtWrV0rJly+Tv75/h6O7MpFdtNDMzkyRdu3ZNK1euNCTsSQ+T9kytmtiwYcMMMacnjWbnxIkT8vLykqenp6Ht8fflr/b4HsXHx2vfvn0KCQmR9PCI+ODg4Fzv0eLFi1WmTBkFBARIkqpUqaKSJUtqyZIleR5rXq81fPhwJSUlGa4LFy48dcwAAAAAAAAAAOC/xzK/AwAAAADw75RemW7t2rUqVqyYUZ+1tbUhCbNAgQKG9vRkq9TUVJPXy6t58sq5c+fUsmVL9e7dWxMmTJCrq6t27Nih7t276969e7Kzs9Mbb7yhwMBArV27Vt99950mTZqkKVOmqH///hnme5rKh5l5dL+kh3v2rPfLyspKPj4+2Y5xdHRUq1at1KpVK40fP16BgYEaP368mjZtmu196YmvpUqVkiRDxc4aNWoYxqSlpSk1NVWnTp2Sr69vrmK2t7fPMeZ/isf3KDIyUg8ePDBKEk1LS5O1tbVmzpwpZ2fnbOeLjIzUsWPHZGn5///XQmpqqqKiotS9e/enjtXJyUlubm7PZC1ra2tZW1s/VYwAAAAAAAAAAABUwAQAAADwTFSoUEHW1tZKSEiQj4+P0ZXb436trKxyXY3SVOXLl9fOnTuN2nbu3ClfX19ZWFjkao49e/Zk+L58+fKSpIMHDyo1NVVTpkxRzZo15evrq99++y3DHF5eXurVq5dWrlypwYMHa+7cuZmuVblyZW3evDlXcT0L5cuX1+HDh3Xz5k1D286dO2Vubq5y5co9kzXNzMzk5+dntGZWpk+fLicnJzVp0kTSw4S9wYMHG1WuPHz4sF588UVFRUU9k3gfVb58eV24cEGJiYmGtsffl79SamqqPv74Y5UqVUpVq1bVgwcPtGDBAk2ZMiXDHnl6emrx4sXZznf06FEdOHBAW7duNbp/69at2r17t06ePPnEsV66dEmLFi1S69atZW5u/kzXAgAAAAAAAAAAeBpUwAQAAADwTDg6Oio8PFxvvfWWUlNTVbduXSUlJWnnzp1ycnJSyZIlc5zD29tbv/zyi+Li4lS8eHE5OjrmWdW6wYMH6/nnn9e4ceMUHBys3bt3a+bMmfrss89yPcfOnTv14YcfqnXr1tq4caOWLVumtWvXSpJ8fHx0//59ffLJJ2rVqpV27typWbNmGd0/aNAgNWvWTL6+vrp69aq2bNliSOB83PDhw1WpUiX16dNHvXr1kpWVlbZs2aLXXntNhQoVevKNyKVOnTpp9OjR6tKliyIiIvTHH3+of//+ev3111W0aNFczfHgwQNdvHjRqM3MzExFixZVXFycRo8erddff10VKlSQlZWVtm3bpqioKA0dOtTonmvXrunixYu6e/euTp06pdmzZ2v16tVasGCBXFxcFBcXpx9//FELFy6Un5+f0b0hISEaO3asxo8fb1RNMSt3797NELOlpWWOe96kSRP5+vqqS5cumjx5sq5fv6733nsvx/XyyuXLl3Xx4kXdunVLP/30k6ZPn659+/Zp7dq1srCw0OrVq3X16lV17949Q6XLtm3bKjIyMtuj1iMjI/XCCy+oXr16Gfqef/55RUZGavLkyTnGmZaWposXLyotLU3Xrl3T7t27NXHiRDk7O+v999/P07UAAAAAAAAAAADyGhUwAQAAADwz48aN08iRIzVp0iSVL19eQUFBWrt2reEI5Jy0bdtWQUFBatiwoQoXLpxjVT5TVKtWTUuXLlVsbKwqVqyoUaNGaezYsQoLC8v1HIMHD9aBAwdUtWpVjR8/XlOnTlVgYKAkKSAgQFOnTtUHH3ygihUrauHChZo0aZLR/SkpKerbt69hb3x9fbNMAPX19dV3332nw4cP64UXXlCtWrX01Vdf5SqJMC/Y2dlpw4YNunLlip5//nm1a9dOjRs31syZM3M9x7Fjx+Th4WF0pSfiFi9eXN7e3hozZoxq1KihatWqacaMGRozZkyGxMWuXbvKw8NDfn5+6t27txwcHLRv3z517NhR0sOEvQoVKmRIvpSkNm3a6NKlS1q3bl2uYl6/fn2GmOvWrZvjfebm5lq1apVu376tF154QW+88YYmTJiQqzXzQpMmTeTh4aFKlSpp2LBhKl++vI4cOaKGDRtKerhHTZo0yfSY8bZt2+rAgQM6cuRIpnPfu3dPX375pdq2bZtpf9u2bbVgwQLdv38/xzivX78uDw8PFStWTLVq1dLs2bPVpUsXHTp0SB4eHnm6FgAAAAAAAAAAQF4zS0tLS8vvIAAAAAAAAPLL9evX5ezsrID+s2RhbZvf4QAAAAAAAAAA8EwdnNw5v0P4W0v/e4OkpCQ5OTllO5YKmAAAAAAAAAAAAAAAAAAAACYiARMAAAAAHrN9+3Y5ODhkef2dJCQkZBtrQkLCXxJHdjFs3779L4nhr7Rw4cIsn9ff3/+ZrdurV68s1+3Vq9czW/dJ+Pv7ZxnrwoUL8zs8AAAAAAAAAACAp8YR5AAAAADwmNu3b+vXX3/Nst/Hx+cvjCZ7Dx480Llz57Ls9/b2lqWl5TOP48yZM1n2FStWTLa2/65jnW/cuKHff/89074CBQqoZMmSz2TdS5cu6fr165n2OTk5qUiRIs9k3Sdx/vx53b9/P9O+okWLytHR8S+OKGscQQ4AAAAAAAAA+C/hCPLsmXIE+bP/WzgAAAAA+IextbX9WyVZZsfS0vJvEevfIYa/kqOjY74kEBYpUuRvlWSZnWeVhAoAAAAAAAAAAPB3wRHkAAAAAAAAAAAAAAAAAAAAJqICJgAAAAAAgKQfxofkeJQIAAAAAAAAAABAOipgAgAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAAAABORgAkAAAAAAAAAAAAAAAAAAGAiEjABAAAAAAAAAAAAAAAAAABMRAImAAAAAAAAAAAAAAAAAACAiUjABAAAAAAAAAAAAAAAAAAAMJFlfgcAAAAAAADwd1BvxGJZWNvmdxgAAAAAAADAv9bByZ3zOwQAyFNUwAQAAAAAAAAAAAAAAAAAADARCZgAAAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAADARCRgAgAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAAAABORgAkAAAAAAAAAAAAAAAAAAGAiEjABAAAAAAAAAAAAAAAAAABMRAImAAAAAOCZiYmJkYuLyxPdu3jxYllYWKhv376Z9s+dO1cBAQFycHCQi4uLqlatqkmTJkmSvL29ZWZmluUVFhaW5bqnTp2SnZ2dFi1aZNSempqq2rVrq127dtnGePDgQZmZmWnPnj2Zzt+4cWO9+uqrkqSwsLBM4wsKCjKMf/RZ7OzsVKlSJc2bNy/7zcuCn5+frK2tdfHixQx93t7emj59eob2iIgIValSxfB9esy9evXKMLZv37457u+jHn9+Nzc3BQUF6ciRI5mO79mzpywsLLRs2bIc4wQAAAAAAAAAAHjWSMAEAAAAAPwtRUZGasiQIVq8eLHu3Llj1BcVFaVBgwZpwIABiouL086dOzVkyBAlJydLkvbv36/ExEQlJiZqxYoVkqT4+HhD24wZM7Jc19fXV++//7769++vxMREQ/uUKVP0888/a9asWdnG+NxzzykgIEBRUVEZ5j537py2bNmi7t27G9qCgoIMcaVfixcvNrpv7NixSkxM1E8//aTQ0FD16NFD3377bW63UpK0Y8cO3b59W+3atdP8+fNNuvdxXl5eio2N1e3btw1td+7c0aJFi1SiRAmT5nr0+Tdv3ixLS0u1bNkyw7hbt24pNjZWQ4YMyXRvAQAAAAAAAAAA/mokYAIAAADAf8D69etVt25dubi4yM3NTS1bttTZs2clSffu3VO/fv3k4eEhGxsblSxZ0lBJMi0tTRERESpRooSsra3l6empAQMGGOa9e/euwsPDVaxYMdnb26tGjRraunWrJGnr1q3q2rWrkpKSDBUOIyIichXvL7/8ol27dmnYsGHy9fXVypUrjfrXrFmj9u3bq3v37vLx8ZG/v79CQkI0YcIESVLhwoXl7u4ud3d3ubq6SpKKFCliaHN2ds52/f79+ysgIEA9evSQJJ08eVKjRo3SnDlzVKhQoRxj7N69u5YsWaJbt24ZzRsTEyMPDw+jCpfW1taGuNKvggULGt3n6Ogod3d3lS5dWkOHDpWrq6s2btyYq71MFxkZqY4dO+r1119/6gTGatWqycvLy+iZV65cqRIlSqhq1aomzfXo81epUkXDhg3ThQsX9McffxiNW7ZsmSpUqKBhw4bphx9+0IULF57qGQAAAAAAAAAAAJ4WCZgAAAAA8B9w8+ZNvf322zpw4IA2b94sc3NztWnTRqmpqfr444+1Zs0aLV26VPHx8Vq4cKG8vb0lSStWrNC0adM0e/ZsnT59WqtXr1alSpUM8/br10+7d+9WbGysjhw5otdee01BQUE6ffq0ateurenTp8vJyclQ4TA8PDxX8UZHR6tFixZydnZWaGioIiMjjfrd3d21Z88enT9/Ps/26FFmZmaKjo7W9u3bNXfuXIWFhalDhw56+eWXcxVjp06ddPfuXS1fvtzQlpaWpvnz5yssLEwWFhZPFFdqaqpWrFihq1evysrKKtf33bhxQ8uWLVNoaKiaNm2qpKQkbd++/YliSNetWzdFR0cbvo+KilLXrl2fas7k5GR9+eWX8vHxkZubm1FfZGSkQkND5ezsrGbNmikmJuaJ17l7966uX79udAEAAAAAAAAAAJiKBEwAAAAA+A9o27atXn31Vfn4+KhKlSqKiorS0aNHdfz4cSUkJKhs2bKqW7euSpYsqbp16yokJESSlJCQIHd3dzVp0kQlSpTQCy+8YKgKmZCQoOjoaC1btkwvvviiypQpo/DwcNWtW1fR0dGysrKSs7OzzMzMDBUOHRwccow1NTVVMTExCg0NlSR16NBBO3bs0C+//GIYM3r0aLm4uMjb21vlypVTWFiYli5dqtTU1Dzbs5IlS2r69Onq1atXhmPLc4rR1dVVbdq0Mao0uWXLFp07dy5DkuI333wjBwcHo2vixIlGY4YOHSoHBwdZW1urXbt2KliwoN54441cP0tsbKzKli0rf39/WVhYqEOHDhmSWk0VGhqqHTt26Pz58zp//rx27txp2A9TPPr8jo6OWrNmjZYsWSJz8///vyxOnz6tPXv2KDg42LB2dHS00tLSnij2SZMmydnZ2XB5eXk90TwAAAAAAAAAAOC/jQRMAAAAAPgPOH36tEJCQlS6dGk5OTkZKlwmJCQoLCxMcXFxKleunAYMGKDvvvvOcN9rr72m27dvq3Tp0urRo4dWrVqlBw8eSJKOHj2qlJQU+fr6GiUPbtu2zXC8+ZPYuHGjbt68qebNm0uSChUqpKZNmxolM3p4eGj37t06evSoBg4cqAcPHqhLly4KCgrK0yTMrl27ysPDQ/3795eTk5NJMXbr1k0//PCDYS+ioqJUv359+fj4GK3RsGFDxcXFGV29evUyGvPOO+8oLi5O33//vWrUqKFp06ZlmCc7UVFRRsmRoaGhWrZsmW7cuJH7zXhM4cKF1aJFC8XExBiqgaYfz26KR59/3759CgwMVLNmzYyqm0ZFRSkwMNAwf/PmzZWUlKTvv//+iWIfPny4kpKSDBfHmQMAAAAAAAAAgCdhmd8BAAAAAACevVatWqlkyZKaO3euPD09lZqaqooVK+revXuqVq2afvnlF3377bfatGmT2rdvryZNmmj58uXy8vJSfHy8Nm3apI0bN6pPnz6aPHmytm3bpuTkZFlYWOjgwYMZjtTOTaXLrERGRurKlSuytbU1tKWmpurIkSMaM2aMUWXEihUrqmLFiurTp4969eqlF198Udu2bVPDhg2feP3HWVpaytLS+H8+5ybGxo0bq0SJEoqJidE777yjlStXavbs2Rnmt7e3zzGZslChQvLx8ZGPj4+WLVumSpUqqXr16qpQoUKO8R8/flx79uzRvn37NHToUEN7SkqKYmNjDRVNnZyclJSUlOH+a9euydnZOdO5u3Xrpn79+kmSPv300xxjyczjzz9v3jw5Oztr7ty5Gj9+vFJSUjR//nxdvHjR6HNISUlRVFSUGjdubPKa1tbWsra2fqJ4AQAAAAAAAAAA0pGACQAAAAD/cpcvX1Z8fLzmzp2rF198UZK0Y8cOozFOTk4KDg5WcHCw2rVrp6CgIF25ckWurq6ytbVVq1at1KpVK/Xt21d+fn46evSoqlatqpSUFF26dMkw7+OsrKyUkpJiUqxfffWVYmNj5e/vb2hPSUlR3bp19d133ykoKCjTe9OTEW/evJnr9Z5EbmM0NzdX165dFRkZqWLFisnKykrt2rV76vW9vLwUHBys4cOH66uvvspxfGRkpOrVq5chQTI6OlqRkZGGBMxy5crp4MGDGe7/8ccfVa5cuUznDgoK0r1792RmZqbAwMAneJqMzMzMZG5urtu3b0uS1q1bpxs3bujQoUNGib4//fSTunbtqmvXrsnFxSVP1gYAAAAAAAAAADAFCZgAAAAA8C9XsGBBubm5ac6cOfLw8FBCQoKGDRtm6J86dao8PDxUtWpVmZuba9myZXJ3d5eLi4tiYmKUkpKiGjVqyM7OTl9++aVsbW1VsmRJubm5qVOnTurcubOmTJmiqlWr6o8//tDmzZtVuXJltWjRQt7e3kpOTtbmzZsVEBAgOzs72dnZZRnrF198ITc3N7Vv315mZmZGfc2bN1dkZKSCgoLUu3dveXp6qlGjRipevLgSExM1fvx4FS5cWLVq1Xpme2lKjNLDI8zHjh2rd999VyEhIUYVM9PdvXtXFy9eNGqztLTM9jjvgQMHqmLFijpw4ICqV6+e5bj79+/riy++0NixY1WxYkWjvjfeeENTp07VsWPH5O/vr7feeksvvviiJkyYoFdffVUpKSlavHixdu/erc8++yzT+S0sLHTixAnD10/i0ee/evWqZs6cqeTkZLVq1UrSwwTSFi1aKCAgwOi+ChUq6K233tLChQvVt29fSdLt27cVFxdnNM7R0VFlypR5otgAAAAAAAAAAACyY57zEAAAAADAP5m5ubliY2N18OBBVaxYUW+99ZYmT55s6Hd0dNSHH36o6tWr6/nnn9e5c+e0bt06mZuby8XFRXPnzlWdOnVUuXJlbdq0SV9//bXc3NwkPayi2LlzZw0ePFjlypVT69attX//fpUoUUKSVLt2bfXq1UvBwcEqXLiwPvzww2xjjYqKUps2bTIkNkpS27ZttWbNGv35559q0qSJ9uzZo9dee02+vr5q27atbGxstHnzZkNsz0puY5SkEiVKqEmTJrp69aq6deuW6Xzr16+Xh4eH0VW3bt1sY6hQoYJeeukljRo1Kttxa9as0eXLl9WmTZsMfeXLl1f58uUVGRkp6eFn9e233+rbb79VnTp11KBBA+3atUubN2/OkLz5KCcnJzk5OWUbR3Yeff4aNWpo//79WrZsmRo0aKDff/9da9euVdu2bTPcZ25urjZt2hjil6RTp06patWqRlfPnj2fODYAAAAAAAAAAIDsmKWlpaXldxAAAAAAAAD55fr163J2dlZA/1mysM5YpRQAAAAAAABA3jg4uXN+hwAAOUr/e4OkpKQci1BQARMAAAAAAAAAAAAAAAAAAMBEJGACAAAAAP4y27dvl4ODQ5bXX2XixIlZxtCsWbO/LI680KxZsyyfZeLEifkWV0JCQrafdUJCQr7FBgAAAAAAAAAAkBcs8zsAAAAAAMB/R/Xq1RUXF5ffYahXr15q3759pn22tv+sI6jnzZun27dvZ9rn6ur6F0fz/zw9PbP9rD09Pf+6YAAAAAAAAAAAAJ4BEjABAAAAAH8ZW1tb+fj45HcYcnV1zdfkxLxUrFix/A4hU5aWln+LzxoAAAAAAAAAAOBZ4QhyAAAAAAAAAAAAAAAAAAAAE1EBEwAAAAAAQNIP40Pk5OSU32EAAAAAAAAAAIB/CCpgAgAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAAAABORgAkAAAAAAAAAAAAAAAAAAGAiEjABAAAAAAAAAAAAAAAAAABMRAImAAAAAAAAAAAAAAAAAACAiSzzOwAAAAAAAIC/g3ojFsvC2ja/wwAAAAAAAACeysHJnfM7BAD4z6ACJgAAAAAAAAAAAAAAAAAAgIlIwAQAAAAAAAAAAAAAAAAAADARCZgAAAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAADARCRgAgAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAAAABORgAkAAAAAAAAAAAAAAAAAAGAiEjABAAAAAAAAAAAAAAAAAABMRAImAAAAACDfxcTEyMXFJb/DMDAzM5ONjY3Onz9v1N66dWuFhYUZxmR3RURE6Ny5c0Ztrq6uql+/vrZv3240b0REhKpUqfLE8Z45c0Zdu3ZV8eLFZW1trVKlSikkJEQHDhyQJEMccXFxGe5t0KCBBg0aZPj+8OHDevnll1WkSBHZ2NjI29tbwcHBunTpkiIiInJ87tzavXu3LCws1KJFi0z77927p8mTJ6tatWqyt7eXs7OzAgICNGLECP3222+GcWFhYZnGERQUlOtYAAAAAAAAAAAAngQJmAAAAACAf5X79+/nyTxmZmYaNWpUlv2JiYmGa/r06XJycjJqCw8PN4zdtGmTEhMT9cMPP8jT01MtW7bU77//nidxHjhwQM8995xOnTql2bNn6/jx41q1apX8/Pw0ePBgk+b6448/1LhxY7m6umrDhg06ceKEoqOj5enpqZs3byo8PNzoGYsXL66xY8cateVWZGSk+vfvrx9++MEooVKS7t69q6ZNm2rixIkKCwvTDz/8oKNHj+rjjz/Wn3/+qU8++cRofFBQkFEMiYmJWrx4sUnPDgAAAAAAAAAAYCoSMAEAAAAAT61BgwYaMGCAhgwZIldXV7m7uysiIsLQP3XqVFWqVEn29vby8vJSnz59lJycLEnaunWrunbtqqSkJKPqkdLDJMjVq1cbreXi4qKYmBhJ/1/ZccmSJapfv75sbGy0cOFCSdK8efNUvnx52djYyM/PT5999plJz9SvXz99+eWX+umnnzLtd3d3N1zOzs4yMzMzanNwcDCMdXNzk7u7uypWrKh3331X169f1969e02KJzNpaWkKCwtT2bJltX37drVo0UJlypRRlSpVNHr0aH311Vcmzbdz504lJSVp3rx5qlq1qkqVKqWGDRtq2rRpKlWqlBwcHIye0cLCQo6OjkZtuZGcnKwlS5aod+/eatGiheHzTDdt2jTt2LFD33//vQYMGKDnnntOJUqUUP369TVr1ixNnDjRaLy1tbVRDO7u7ipYsKBJzw4AAAAAAAAAAGAqEjABAAAAAHli/vz5sre31969e/Xhhx9q7Nix2rhxoyTJ3NxcH3/8sY4dO6b58+fr+++/15AhQyRJtWvXzlBB8tHqkbkxbNgwDRw4UCdOnFBgYKAWLlyoUaNGacKECTpx4oQmTpyokSNHav78+bmes06dOmrZsqWGDRtmUizZuX37thYsWCBJsrKyeur54uLidOzYMQ0ePFjm5hn/J76px7q7u7vrwYMHWrVqldLS0p46vqwsXbpUfn5+KleunEJDQxUVFWW03uLFi9W0aVNVrVo10/tNOeo8M3fv3tX169eNLgAAAAAAAAAAAFORgAkAAAAAyBOVK1fW6NGjVbZsWXXu3FnVq1fX5s2bJUmDBg1Sw4YN5e3trUaNGmn8+PFaunSppIeJiI9XkHy0emRuDBo0SK+++qpKlSolDw8PjR49WlOmTDG0vfrqq3rrrbc0e/Zsk+adNGmS1q9fr+3bt5t03+Nq164tBwcH2dvb66OPPtJzzz2nxo0bP9WcknT69GlJkp+f31PPJUk1a9bUu+++q44dO6pQoUJq1qyZJk+enGfHpaeLjIxUaGiopIfHhyclJWnbtm2G/lOnTqlcuXJG97Rp00YODg5ycHBQ7dq1jfq++eYbQ1/69XiVzEdNmjRJzs7OhsvLyysPnw4AAAAAAAAAAPxXkIAJAAAAAMgTlStXNvrew8NDly5dkiRt2rRJjRs3VrFixeTo6KjXX39dly9f1q1bt/Jk7erVqxu+vnnzps6ePavu3bsbJeSNHz9eZ8+eNWneChUqqHPnzk9dBXPJkiU6dOiQVqxYIR8fH8XExKhAgQJPNaekZ1KlcsKECbp48aJmzZolf39/zZo1S35+fjp69GiezB8fH699+/YpJCREkmRpaang4GBFRkZme99nn32muLg4devWLcN707BhQ8XFxRldvXr1ynKu4cOHKykpyXBduHDh6R8MAAAAAAAAAAD851jmdwAAAAAAgH+HxxMKzczMlJqaqnPnzqlly5bq3bu3JkyYIFdXV+3YsUPdu3fXvXv3ZGdnl+WcZmZmGZIM79+/n2Gcvb294evk5GRJ0ty5c1WjRg2jcRYWFiY/15gxY+Tr66vVq1ebfG86Ly8vlS1bVmXLltWDBw/Upk0b/fTTT7K2tn7iOSXJ19dXknTy5Mksj+uWJCcnJ0lSUlJShr5r167J2dnZqM3NzU2vvfaaXnvtNU2cOFFVq1bVRx99ZNIR7lmJjIzUgwcP5OnpaWhLS0uTtbW1Zs6cKWdnZ5UtW1bx8fFG93l4eEiSXF1dM8xpb28vHx+fXMdgbW391HsPAAAAAAAAAABABUwAAAAAwDN18OBBpaamasqUKapZs6Z8fX3122+/GY2xsrJSSkpKhnsLFy6sxMREw/enT5/OsWpm0aJF5enpqZ9//lk+Pj5GV6lSpUyO38vLS/369dO7776baYymateunSwtLfXZZ5899VxVqlRRhQoVNGXKFKWmpmbov3btmqSHSYuFChXSwYMHjfqvX7+uM2fOGBI5M2NlZaUyZcro5s2bTx3vgwcPtGDBAk2ZMsWoWuXhw4fl6empxYsXS5JCQkK0ceNGHTp06KnXBAAAAAAAAAAAeFaogAkAAAAAeKZ8fHx0//59ffLJJ2rVqpV27typWbNmGY3x9vZWcnKyNm/erICAANnZ2cnOzk6NGjXSzJkzVatWLaWkpGjo0KG5Orp7zJgxGjBggJydnRUUFKS7d+/qwIEDunr1qt5++22Tn2H48OGaO3eufvnlFwUHB5t8/6PMzMw0YMAARUREqGfPnoYKoLdv31ZcXJzRWEdHR5UpUybbuaKjo9WkSRO9+OKLeu+99+Tn56fk5GR9/fXX+u6777Rt2zZJ0ttvv62JEyeqaNGiqlmzpi5fvqxx48apcOHCevXVVyVJ33zzjWJjY9WhQwf5+voqLS1NX3/9tdatW6fo6Oineu70+a9evaru3btnqLrZtm1bRUZGqlevXnrrrbe0du1aNW7cWKNHj9aLL76oggUL6tSpU/r2228zVDK9e/euLl68aNRmaWmpQoUKPXXMAAAAAAAAAAAAWaECJgAAAADgmQoICNDUqVP1wQcfqGLFilq4cKEmTZpkNKZ27drq1auXgoODVbhwYX344YeSpClTpsjLy0svvviiOnbsqPDw8GyPLE/3xhtvaN68eYqOjlalSpVUv359xcTEPFEFTOlhBcmhQ4fqzp07T3T/47p06aL79+9r5syZhrZTp06patWqRlfPnj1znOuFF17QgQMH5OPjox49eqh8+fJ6+eWXdezYMU2fPt0wbsiQIRo9erQ++OADVa5cWW3btpW9vb22bNkiW1tbSVKFChVkZ2enwYMHq0qVKqpZs6aWLl2qefPm6fXXX3/q546MjFSTJk0yJF9KDxMwDxw4oCNHjsjGxkabN2/W0KFDFR0drbp166p8+fIaNGiQ6tSpk+E4+PXr18vDw8Poqlu37lPHCwAAAAAAAAAAkB2ztLS0tPwOAgAAAAAAIL9cv35dzs7OCug/SxbWtvkdDgAAAAAAAPBUDk7unN8hAMA/WvrfGyQlJcnJySnbsVTABAAAAAAAAAAAAAAAAAAAMBEJmAAAAACA/5SJEyfKwcEh06tZs2b5HZ6R7du3Zxmrg4NDfoeXQUJCQrbxJiQk5HeIAAAAAAAAAAAAecYyvwMAAAAAAOCv1KtXL7Vv3z7TPlvbv9fx09WrV1dcXFx+h5Frnp6e2cbr6en51wUDAAAAAAAAAADwjJGACQAAAAD4T3F1dZWrq2t+h5Ertra28vHxye8wcs3S0vIfFS8AAAAAAAAAAMDT4AhyAAAAAAAAAAAAAAAAAAAAE1EBEwAAAAAAQNIP40Pk5OSU32EAAAAAAAAAAIB/CCpgAgAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAAAABORgAkAAAAAAAAAAAAAAAAAAGAiEjABAAAAAAAAAAAAAAAAAABMRAImAAAAAAAAAAAAAAAAAACAiSzzOwAAAAAAAIC/g3ojFsvC2ja/wwAAAAAAAICkg5M753cIAADkiAqYAAAAAAAAAAAAAAAAAAAAJiIBEwAAAAAAAAAAAAAAAAAAwEQkYAIAAAAAAAAAAAAAAAAAAJiIBEwAAAAAAAAAAAAAAAAAAAATkYAJAAAAAAAAAAAAAAAAAABgIhIwAQAAAAAAAAAAAAAAAAAATEQCJgAAAAAAAAAAAAAAAAAAgIlIwAQAAAAA/GuEhYWpdevWhq/NzMwMl5ubm4KCgnTkyBFJUkxMjFF/Zte5c+cUERGRad+mTZuyjaV79+6qVKmS7t27Z9S+bt06WVlZ6ccff9S5c+eyXHvPnj1G992+fVuurq4qVKiQ7t69m2E9b29vw712dnaqVKmS5s2bl+t9y24fvL29JUkNGjQwtNnY2MjX11eTJk1SWlpartZ5VGBgoCwsLLR///4s4+nVq1eGvr59+8rMzExhYWGSlONnGBERYXJsAAAAAAAAAAAAuUECJgAAAADgXysoKEiJiYlKTEzU5s2bZWlpqZYtW0qSgoODDX2JiYmqVauWevToYdTm5eUlSfL39zdqT0xMVL169bJde9q0abpx44ZGjx5taLt27Zp69OihkSNHqlq1aob2TZs2ZZj/ueeeM5pvxYoV8vf3l5+fn1avXp3pmmPHjlViYqJ++uknhYaGqkePHvr2229z3KcZM2YYrS1J0dHRhu8fTZJM36P4+HgNHz5co0aN0qxZs3Jc41EJCQnatWuX+vXrp6ioqEzHeHl5KTY2Vrdv3za03blzR4sWLVKJEiUMbY/GPX36dDk5ORm1hYeHmxQbAAAAAAAAAABAblnmdwAAAAAAADwr1tbWcnd3lyS5u7tr2LBhevHFF/XHH3+ocOHCsrW1NYy1srKSnZ2dYfyjLC0tM23PjpOTk6KjoxUYGKjWrVurRo0aGjRokIoVK6bhw4cbjXVzc8tx/sjISIWGhiotLU2RkZEKDg7OMMbR0dEwz9ChQ/Xhhx9q48aNatasWbZzOzs7y9nZ2ajNxcUl05ge3aOuXbtq5syZ2rhxo3r37p3tGo+Kjo5Wy5Yt1bt3b9WsWVNTp041+iwkqVq1ajp79qxWrlypTp06SZJWrlypEiVKqFSpUoZxj8bo7OwsMzMzkz8rAAAAAAAAAACAJ0EFTAAAAADAf0JycrK+/PJL+fj4yM3N7S9Zs2HDhurTp4+6dOmiZcuWaenSpVqwYIEsLU3795Bnz57V7t271b59e7Vv317bt2/X+fPnsxyfmpqqFStW6OrVq7Kysnrax8hUWlqatm/frpMnT5q0RlpamqKjoxUaGio/Pz/5+Pho+fLlmY7t1q2boqOjDd9HRUWpa9euTx07AAAAAAAAAABAXiABEwAAAADwr/XNN9/IwcFBDg4OcnR01Jo1a7RkyRKZm5v2P4ePHj1qmMfBwUEvvPBCru+dNGmSJKlDhw6aOHGi/Pz8MoypXbu20fwODg5G/VFRUWrWrJkKFiwoV1dXBQYGGiUmphs6dKgcHBxkbW2tdu3aqWDBgnrjjTdMetacfPbZZ4Y16tWrp9TUVA0YMCDX92/atEm3bt1SYGCgJCk0NFSRkZGZjg0NDdWOHTt0/vx5nT9/Xjt37lRoaOhTP8Pdu3d1/fp1owsAAAAAAAAAAMBUJGACAAAAAP61GjZsqLi4OMXFxWnfvn0KDAxUs2bNsq0emZly5coZ5omLi9OKFStyfa+tra3Cw8NlZ2engQMHZjpmyZIlRvPHxcUZ+lJSUjR//nyjxMPQ0FDFxMQoNTXVaJ533nlHcXFx+v7771WjRg1NmzZNPj4+Jj1rTjp16qS4uDjt3LlTzZo103vvvafatWvn+v6oqCgFBwcbqoCGhIRo586dOnv2bIaxhQsXVosWLRQTE6Po6Gi1aNFChQoVeupnmDRpkuHYdWdnZ3l5eT31nAAAAAAAAAAA4L/HtDPPAAAAAAD4B7G3tzdKQJw3b56cnZ01d+5cjR8/PtfzWFlZPVUio6WlpSwsLGRmZpZpv5eXV5bzb9iwQb/++quCg4ON2lNSUrR582Y1bdrU0FaoUCH5+PjIx8dHy5YtU6VKlVS9enVVqFDhiWN/nLOzsyHWpUuXysfHRzVr1lSTJk1yvPfKlStatWqV7t+/r88//9zoWaKiojRhwoQM93Tr1k39+vWTJH366ad58gzDhw/X22+/bfj++vXrJGECAAAAAAAAAACTUQETAAAAAPCfYWZmJnNzc92+fTu/Q8m1yMhIdejQIUOFzA4dOmR5dLf0MKkzODhYw4cPf2axOTg4aODAgQoPD1daWlqO4xcuXKjixYvr8OHDRs8yZcoUxcTEKCUlJcM9QUFBunfvnu7fv284tvxpWVtby8nJyegCAAAAAAAAAAAwFRUwAQAAAAD/Wnfv3tXFixclSVevXtXMmTOVnJysVq1a5XNkxi5fvmyIM52Li4tu3Lihr7/+WmvWrFHFihWN+jt37qw2bdroypUrcnV1zXTegQMHqmLFijpw4ICqV6/+TGLv2bOnxo0bpxUrVqhdu3bZjo2MjFS7du0yPIuXl5eGDx+u9evXq0WLFkZ9FhYWOnHihOFrAAAAAAAAAACAvwsqYAIAAAAA/rXWr18vDw8PeXh4qEaNGtq/f7+WLVumBg0a5HdoRpo0aWKIM/1avXq1FixYIHt7ezVu3DjDPY0bN5atra2+/PLLLOetUKGCXnrpJY0aNeqZxe7q6qrOnTsrIiJCqampWY47ePCgDh8+rLZt22boc3Z2VuPGjbOs6EmVSgAAAAAAAAAA8HdklpabM8IAAAAAAAD+pa5fvy5nZ2cF9J8lC2vb/A4HAAAAAAAAkg5O7pzfIQAA/qPS/94gKSkpxwIRVMAEAAAAAAAAAAAAAAAAAAAwEQmYAAAAAAA8IQcHhyyv7du353d4Rpo1a5ZlrBMnTsyTNXr16pXlGr169cqTNQAAAAAAAAAAAP4uLPM7AAAAAAAA/qni4uKy7CtWrNhfF0guzJs3T7dv3860z9XVNU/WGDt2rMLDwzPty+mIDgAAAAAAAAAAgH8aEjABAAAAAHhCPj4++R1Crv0VCaFFihRRkSJFnvk6AAAAAAAAAAAAfwccQQ4AAAAAAAAAAAAAAAAAAGAiEjABAAAAAAAAAAAAAAAAAABMxBHkAAAAAAAAkn4YHyInJ6f8DgMAAAAAAAAAAPxDUAETAAAAAAAAAAAAAAAAAADARCRgAgAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAAAABORgAkAAAAAAAAAAAAAAAAAAGAiEjABAAAAAAAAAAAAAAAAAABMZJnfAQAAAAAAAPwd1BuxWBbWtvkdBgAAAAAAeerg5M75HQIAAMC/FhUwAQAAAAAAAAAAAAAAAAAATEQCJgAAAAAAAAAAAAAAAAAAgIlIwAQAAAAAAAAAAAAAAAAAADARCZgAAAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAADARCRgAgAAAAAAAAAAAAAAAAAAmIgETAAAAAAAAAAAAAAAAAAAABORgAkAAAAAyFRMTIxcXFxMuqdBgwYyMzOTmZmZrK2tVaxYMbVq1UorV67MMDZ93ONXbGysJGnr1q1G7ba2tvL399ecOXNynCP9ioiIyDbec+fOyczMTHFxcVmO2bVrl5o3b66CBQvKxsZGlSpV0tSpU5WSkpLpeD8/P1lbW+vixYtZ7k/6M6abPn26vL29s401XUxMjNEzOjg46Lnnnst0jyVp8eLFsrCwUN++fTP0pe/xtWvXcrV2uu7du6tSpUq6d++eUfu6detkZWWlH3/80dCW2X60atVKQUFBmc69fft2mZmZ6ciRI4bPJ7Nrz549GfbD3NxcHh4eCg4OVkJCgknPBAAAAAAAAAAAYCoSMAEAAAAAeapHjx5KTEzU2bNntWLFClWoUEEdOnTQm2++mWFsdHS0EhMTja7WrVsbjYmPj1diYqKOHz+unj17qnfv3tq8ebMkGd03ffp0OTk5GbWFh4c/1bOsWrVK9evXV/HixbVlyxadPHlSAwcO1Pjx49WhQwelpaUZjd+xY4du376tdu3aaf78+ZnOaWNjoxEjRuj+/ftPHNejz3no0CEFBgaqffv2io+PzzA2MjJSQ4YM0eLFi3Xnzp0nXvNR06ZN040bNzR69GhD27Vr19SjRw+NHDlS1apVk5T1fnTv3l0bN27U//73vwxzR0dHq3r16qpcubKhbdOmTRnek+eeey7Dfvz6669asWKF4uPj9dprr+XJswIAAAAAAAAAAGSFBEwAAAAA+Jtbv3696tatKxcXF7m5ually5Y6e/asJOnevXvq16+fPDw8ZGNjo5IlS2rSpEmSpLS0NEVERKhEiRKytraWp6enBgwYYJj37t27Cg8PV7FixWRvb68aNWpo69atkh5WRuzatauSkpJyXU0ynZ2dndzd3VW8eHHVrFlTH3zwgWbPnq25c+dq06ZNRmNdXFzk7u5udNnY2BiNKVKkiNzd3VWqVCkNGDBApUqVMlRYfPQ+Z2dnmZmZGbU5ODg8yZZLkm7evKkePXro5Zdf1pw5c1SlShV5e3vrjTfe0Pz587V8+XItXbrU6J7IyEh17NhRr7/+uqKiojKdNyQkRNeuXdPcuXOfOLZHn7Ns2bIaP368zM3NdeTIEaNxv/zyi3bt2qVhw4bJ19c3yyqZpnJyclJ0dLSmTJmivXv3SpIGDRqkYsWKafjw4YZxWe1Hy5YtVbhwYcXExBjNm5ycrGXLlql79+5G7W5ubhnekwIFCmTYDw8PD9WuXVvdu3fXvn37dP369Tx5XgAAAAAAAAAAgMyQgAkAAAAAf3M3b97U22+/rQMHDmjz5s0yNzdXmzZtlJqaqo8//lhr1qzR0qVLFR8fr4ULFxqOsl6xYoWmTZum2bNn6/Tp01q9erUqVapkmLdfv37avXu3YmNjdeTIEb322msKCgrS6dOnVbt27QwVJZ+mmmSXLl1UsGDBp0oATEtL0/r165WQkKAaNWo88Ty59d133+ny5cuZPnerVq3k6+urxYsXG9pu3LihZcuWKTQ0VE2bNlVSUpK2b9+e4V4nJye99957Gjt2rG7evPnUcaakpBiqS6ZXnkwXHR2tFi1ayNnZWaGhoYqMjHzq9dI1bNhQffr0UZcuXbRs2TItXbpUCxYskKWlpaTs98PS0lKdO3dWTEyMURXRZcuWKSUlRSEhIU8c16VLl7Rq1SpZWFjIwsIi0zF3797V9evXjS4AAAAAAAAAAABTWeZ3AAAAAACA7LVt29bo+6ioKBUuXFjHjx9XQkKCypYtq7p168rMzEwlS5Y0jEtISJC7u7uaNGmiAgUKqESJEnrhhRcMfdHR0UpISJCnp6ckKTw8XOvXr1d0dLQmTpxoVFHyaZmbm8vX11fnzp0zag8JCcmQJHf8+HGVKFHC8H3x4sUlPUyaS01N1dixY1WvXr2njiknp06dkiSVL18+034/Pz/DGEmKjY1V2bJl5e/vL0nq0KGDIiMj9eKLL2a4t0+fPpoxY4amTp2qkSNHmhxbUlKSobrn7du3VaBAAc2ZM0dlypQxjElNTVVMTIw++eQTQzyDBw/WL7/8olKlSpm8ZmYmTZqk9evXq0OHDpoyZYr8/PwMfTntR7du3TR58mRt27ZNDRo0kPQwYbRt27ZydnY2Wqd27doyNzf+N6TJyckZ9iMtLU23bt2SJA0YMED29vZZxj1mzJine3gAAAAAAAAAAPCfRwVMAAAAAPibO336tEJCQlS6dGk5OTkZKlwmJCQoLCxMcXFxKleunAYMGKDvvvvOcN9rr72m27dvq3Tp0urRo4dWrVqlBw8eSJKOHj2qlJQU+fr6ysHBwXBt27bNcLx5XktLS5OZmZlR27Rp0xQXF2d0pSeEptu+fbuhb968eZo4caI+//zzZxJjVnHnRlRUlEJDQw3fh4aGatmyZbpx40aGsdbW1ho7dqw++ugj/fnnnybH5OjoaNiTQ4cOaeLEierVq5e+/vprw5iNGzfq5s2bat68uSSpUKFCatq0aZZHoz8JW1tbhYeHy87OTgMHDjTqy2k//Pz8VLt2bUM8Z86c0fbt2zMcPy5JS5YsyfCePCp9Pw4cOKApU6aoWrVqmjBhQpZxDx8+XElJSYbrwoULT7oFAAAAAAAAAADgP4wKmAAAAADwN9eqVSuVLFlSc+fOlaenp1JTU1WxYkXdu3dP1apV0y+//KJvv/1WmzZtUvv27dWkSRMtX75cXl5eio+P16ZNm7Rx40b16dPHUHEwOTlZFhYWOnjwYIYKlOmVFfNSSkqKTp8+reeff96o3d3dXT4+PtneW6pUKbm4uEiS/P39tXfvXk2YMEG9e/fO8zgf5evrK0k6ceKEateunaH/xIkTqlChgqSHVTv37Nmjffv2aejQoYYxKSkpio2NVY8ePTLcHxoaqo8++kjjx483JNXmlrm5udG+Va5cWd99950++OADtWrVSpIUGRmpK1euyNbW1jAuNTVVR44c0ZgxYzJUlHxSlpaWsrCwMEquze1+dO/eXf3799enn36q6OholSlTRvXr18+whpeXV7bvyaP7Ub58eZ09e1a9e/fWF198kel4a2trWVtbP9HzAgAAAAAAAAAApKMCJgAAAAD8jV2+fFnx8fEaMWKEGjdurPLly+vq1atGY5ycnBQcHKy5c+dqyZIlWrFiha5cuSLpYYXCVq1a6eOPP9bWrVu1e/duHT16VFWrVlVKSoouXbokHx8foyv9yHErKyulpKTkyXPMnz9fV69ezXCc+pOwsLDQ7du38yCq7L300ktydXXVlClTMvStWbPGUJlUepjsWK9ePR0+fNioSuPbb7+tyMjITOc3NzfXpEmT9Pnnn2c4mv1JPLovly9f1ldffaXY2FijeA4dOqSrV68aVUp9FnK7H+3bt5e5ubkWLVqkBQsWqFu3bhmqpD6JYcOGacmSJfrxxx+fei4AAAAAAAAAAICsUAETAAAAAP7GChYsKDc3N82ZM0ceHh5KSEjQsGHDDP1Tp06Vh4eHqlatKnNzcy1btkzu7u5ycXFRTEyMUlJSVKNGDdnZ2enLL7+Ura2tSpYsKTc3N3Xq1EmdO3fWlClTVLVqVf3xxx/avHmzKleurBYtWsjb21vJycnavHmzAgICZGdnJzs7uxxjvnXrli5evKgHDx7of//7n1atWqVp06apd+/eatiwodHYa9eu6eLFi0Ztjo6Osre3N3x/6dIl3blzR3fv3tW+ffv0xRdfqF27dk+5s8bi4+MztPn7+2v27Nnq0KGD3nzzTfXr109OTk7avHmz3nnnHbVr107t27fX/fv39cUXX2js2LGqWLGi0RxvvPGGpk6dqmPHjsnf3z/DGi1atFCNGjU0e/ZsFS1aNNfxpqWlGfbt9u3b2rhxozZs2KBRo0ZJkr744gu5ubmpffv2GRIamzdvrsjISAUFBRnajh49KkdHR8P3ZmZmCggIyHU8jzJlPxwcHBQcHKzhw4fr+vXrCgsLy3TOy5cvZ3hPXFxcZGNjk+l4Ly8vtWnTRqNGjdI333zzRM8BAAAAAAAAAACQExIwAQAAAOBvzNzcXLGxsRowYIAqVqyocuXK6eOPP1aDBg0kPUxW/PDDD3X69GlZWFjo+eef17p162Rubi4XFxe9//77evvtt5WSkqJKlSrp66+/lpubmyQpOjpa48eP1+DBg/Xrr7+qUKFCqlmzplq2bClJql27tnr16qXg4GBdvnxZo0ePVkRERI4xz507V3PnzpWVlZXc3Nz03HPPacmSJWrTpk2GsV27ds3QNmnSJKMk03Llykl6eNS1l5eXevbsmas4TNGhQ4cMbRcuXFC7du20ZcsWTZgwQS+++KLu3LmjsmXL6r333tOgQYNkZmamNWvW6PLly5k+X/ny5VW+fHlFRkZq6tSpma79wQcfZHrEeXauX78uDw8PSQ+P0y5ZsqTGjh1rOO47KipKbdq0ybSaZNu2bfX666/rzz//NLTVq1fPaIyFhYUePHhgUkzpTN2P7t27KzIyUs2bN5enp2emczZp0iRD2+LFizP93NK99dZbqlWrlvbt26cXXnjhiZ4FAAAAAAAAAAAgO2ZpaWlp+R0EAAAAAABAfrl+/bqcnZ0V0H+WLKxt8zscAAAAAADy1MHJnfM7BAAAgH+U9L83SEpKkpOTU7Zjzf+imAAAAAAAAAAAAAAAAAAAAP41SMAEAAAAAOTK9u3b5eDgkOX1d9SrV68s4+3Vq1d+h5cpf3//LGNeuHDhXxZHdp/19u3b/7I4AAAAAAAAAAAA/q4s8zsAAAAAAMA/Q/Xq1RUXF5ffYZhk7NixCg8Pz7QvpyMj8su6det0//79TPuKFi36l8WR3WddrFixvywOAAAAAAAAAACAvysSMAEAAAAAuWJraysfH5/8DsMkRYoUUZEiRfI7DJOULFkyv0OQpH/cZw0AAAAAAAAAAPBX4whyAAAAAAAAAAAAAAAAAAAAE5GACQAAAAAAAAAAAAAAAAAAYCKOIAcAAAAAAJD0w/gQOTk55XcYAAAAAAAAAADgH4IKmAAAAAAAAAAAAAAAAAAAACYiARMAAAAAAAAAAAAAAAAAAMBEJGACAAAAAAAAAAAAAAAAAACYiARMAAAAAAAAAAAAAAAAAAAAE5GACQAAAAAAAAAAAAAAAAAAYCLL/A4AAAAAAADg76DeiMWysLbN7zAAAAAA4G/p4OTO+R0CAAAA8LdDBUwAAAAAAAAAAAAAAAAAAAATkYAJAAAAAAAAAAAAAAAAAABgIhIwAQAAAAAAAAAAAAAAAAAATEQCJgAAAAAAAAAAAAAAAAAAgIlIwAQAAAAAAAAAAAAAAAAAADARCZgAAAAAAAAAAAAAAAAAAAAmIgETAAAAwN/CyZMnVbNmTdnY2KhKlSo5jo+IiMjVuPyydetWmZmZ6dq1a4a21atXy8fHRxYWFho0aFCmbTExMXJxccmXmP/OwsLC1Lp162cyt5mZmVavXv1M5s6tx5+vQYMGhnfk7ySzdzg//N1//gEAAAAAAAAAwH8DCZgAgH+1LVu2qHnz5nJzc5OdnZ0qVKigwYMH69dff5WkbJNcHk/GWLVqlWrWrClnZ2c5OjrK39/fkHjQoEEDmZmZZXk1aNAgx1i9vb1lZmamPXv2GLUPGjQow/1XrlzRoEGDVLJkSVlZWcnT01PdunVTQkJCbrfGYPfu3bKwsFCLFi0y9J07d87oOdzc3PTSSy/p0KFDhjG//PKLOnbsKE9PT9nY2Kh48eJ65ZVXdPLkScOYR+ewt7dX2bJlFRYWpoMHDxrGhIWFZbuH3t7ekoz32sbGRr6+vpo0aZLS0tKMYj906JBee+01FS1aVDY2Nipbtqx69OihU6dOGT1bXFxchud+POnlaZNgeA//3rJ7F7KzbNky+fn5ycbGRpUqVdK6deuM+iMiIuTn5yd7e3sVLFhQTZo00d69ezOd6+7du6pSpUq2cZw5c0aOjo5PlJg3Z84cNWjQQE5OThkSAnMjMTFRHTt2lK+vr8zNzbP8ebh27Zr69u0rDw8PWVtby9fXN8O+ZGf06NGyt7dXfHy8Nm/ebFKMWbl//77Gjh2rMmXKyMbGRgEBAVq/fr3RmIiIiAw/L35+fob+K1euqH///ipXrpxsbW1VokQJDRgwQElJSSbH07NnT7Vr104XLlzQuHHjsmzLC1n9Lpg8ebLRs3Xq1ElOTk5ycXFR9+7dlZycbNI6n3/+uSpXriwnJyc5OTmpVq1a+vbbbw39j/9Z8ui1bNmyPHvex73//vsyMzN7ZkmCn376qcqXLy9bW1uVK1dOCxYsyNP5V65cmWfvQ14mrz6r99VU4eHhefZ7AgAAAAAAAAAA4EmRgAkA+NeaPXu2mjRpInd3d61YsULHjx/XrFmzlJSUpClTppg01+bNmxUcHKy2bdtq3759OnjwoCZMmKD79+9LepgkkZiYqMTERO3bt0+StGnTJkPbypUrc7WOjY2Nhg4dmu2YK1euqGbNmtq0aZNmzZqlM2fOKDY2VmfOnNHzzz+vn3/+2aRni4yMVP/+/fXDDz/ot99+y3RM+rNs2LBBycnJatasma5du6b79++radOmSkpK0sqVKxUfH68lS5aoUqVKGRK8oqOjlZiYqGPHjunTTz9VcnKyatSoYUhYmTFjhmG/EhMTje5JTEzU/v37DXP16NFDiYmJio+P1/DhwzVq1CjNmjXL0P/NN9+oZs2aunv3rhYuXKgTJ07oyy+/lLOzs0aOHGnS/jwt3sN/p127dikkJETdu3fXoUOH1Lp1a7Vu3Vo//fSTYYyvr69mzpypo0ePaseOHfL29tZLL72kP/74I8N8Q4YMkaenZ5br3b9/XyEhIXrxxRefKN5bt24pKChI77777hPdf/fuXRUuXFgjRoxQQEBApmPu3bunpk2b6ty5c1q+fLni4+M1d+5cFStWLNfrnD17VnXr1lXJkiXl5ub2RLE+bsSIEZo9e7Y++eQTHT9+XL169VKbNm2MEsklyd/f3+h30I4dOwx9v/32m3777Td99NFH+umnnxQTE6P169ere/fuJsWSnJysS5cuKTAwUJ6ennJ0dMy0La88+jyJiYmKioqSmZmZ2rZtaxjTqVMnHTt2TBs3btQ333yjH374QW+++aZJ6xQvXlzvv/++Dh48qAMHDqhRo0Z65ZVXdOzYMUmSl5dXhljGjBkjBwcHNWvWLM+e91H79+/X7NmzVbly5Wcy/+eff67hw4crIiJCx44d05gxY9S3b199/fXXebaGq6trnr4PuZH+50lWcvO+pqSkKDU19VmFaODg4JBnvycAAAAAAAAAAACeFAmYAIBnav369apbt65cXFzk5uamli1b6uzZs5L+vyJWbGysateuLRsbG1WsWFHbtm0z3H/16lV16tRJhQsXlq2trcqWLavo6Ogc1/3f//6nAQMGaMCAAYqKilKDBg3k7e2tevXqad68eRo1apRJz/H111+rTp06euedd1SuXDn5+vqqdevW+vTTTyU9TJJwd3eXu7u7ChcuLElyc3MztLm6uuZqnTfffFN79uzJtmLce++9p99++02bNm1Ss2bNVKJECdWrV08bNmxQgQIF1Ldv31w/V3JyspYsWaLevXurRYsWiomJyXRc+rNUr15dH330kX7//Xft3btXx44d09mzZ/XZZ5+pZs2aKlmypOrUqaPx48erZs2aRnO4uLjI3d3dkIS2fPlyderUSf369dPVq1fl7Oxs2C93d3ejex7dV0mys7OTu7u7SpYsqa5du6py5crauHGjpIeJZl27dlXz5s21Zs0aNWnSRKVKlVKNGjX00Ucfafbs2bnen6fFe5iz1NRUffjhh/Lx8ZG1tbVKlCihCRMmGPqPHj2qRo0aydbWVm5ubnrzzTeNqvNlVp20devWCgsLM3zv7e2tiRMnqlu3bnJ0dFSJEiU0Z84cQ3+pUqUkSVWrVs11pdAZM2YoKChI77zzjsqXL69x48apWrVqmjlzpmFMx44d1aRJE5UuXVr+/v6aOnWqrl+/riNHjhjN9e233+q7777TRx99lOV6I0aMkJ+fn9q3b5+hb//+/WratKkKFSokZ2dn1a9fXz/++KPRmEGDBmnYsGEZfi4f9b///U8hISFydXWVvb29qlevbqjY6e3trRkzZqhz585ydnbO9P6oqChduXJFq1evVp06deTt7a369esbJWxm93mbmZnp4MGDGjt2rMzMzBQREZFjXOlmz54tLy8v2dnZqX379kaVKb/44gu9++67at68uUqXLq3evXurefPmGRKgLS0tjX4HFSpUyNBXsWJFrVixQq1atVKZMmXUqFEjTZgwQV9//bUePHhgGLdu3Tr5+vrK1tZWDRs21Llz5wx9W7duNSSrNWrUSGZmZlm2pVu9erXKli0rGxsbBQYG6sKFC4a+s2fP6pVXXlHRokXl4OCg559/Xps2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99frr7+uokWLSpIaNWqktWvXau3atTp58qR69+5tcpJtkSJFZGtrq/Xr1+v333/PUAE2MwMHDtT69es1ZcoUnTx5UhERETpw4ID69esnSbp586beffdd7dmzR+fPn9fBgwfVrVs3/frrr3rttdckPTw6+9GfvfRE2zJlyqh48eKSHiYoPTqmWLFiMjc3V8WKFVWwYEFJDxNZv/jiC504cUJ79+5Vp06dMlSOvHjxouLi4gwVHdOT1NITG0NCQuTu7q7WrVtr586d+vnnn7VixQrt3r3bMEf6e5+cnGz4eXj0iOnevXvrypUrGjhwoE6dOqW1a9dq4sSJ6tu3r6ScP+/M5Cau9Hfk8OHD2r59uwYMGKD27dsbkrz27t2rlStX6ueff9b27dsVFBSk1NRUDRkyxDBHeHi4tm3bpnPnzmnXrl1q06aNLCwsFBISIun/ky9v3rypyMhIXb9+XRcvXtTFixcNSW29evXS6dOn9c477yg+Pl6LFi1STExMju9SVgoUKKD+/ftr7969OnjwoMLCwlSzZk298MILkh5+7itXrjQkz3fs2DHTSn/Xr1/XsmXLMlS/lB6+X0FBQerRo4f27dunnTt3ql+/furQoYPhiO6yZctq48aN2rVrl06cOKGePXtm+N03fPhw/fDDDzp37pyOHj2q4cOHa+vWrRmOxz5z5ox++OGHTGMpW7asDhw4oA0bNujUqVMaOXKk9u/fn2HcvXv31L17dx0/flzr1q3T6NGj1a9fP5mbm8vR0THDn2n29vZyc3NTxYoVJUlNmjSRr6+v0Tvz3nvvZYglISFBsbGxOnv2rD7++GOtWrXKaMypU6f05Zdf6vTp09q3b586dOign376SRMnTswQc2YGDhyo999/X6tXr9bJkyfVp0+fXP3u6tSpk2JjY7Vs2TKTjh/39vbWkSNHFB8frz///DPTSsF5ydfXV506dVLnzp21cuVK/fLLL9q3b58mTZqktWvXSpIGDBig9evX66OPPtLp06c1c+ZMrV+//pnGBQAAAAAAAAAAkNdIwAQAPDPm5uaKjY3VwYMHVbFiRb311luaPHlyhnHvv/++3n//fQUEBGjHjh1as2aNChUqJOlhxabhw4ercuXKqlevnqHCVG706dNH3333nX799Ve1adNGfn5+euONN+Tk5GR0jPmSJUtUv3599ezZU/7+/how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zJihp556Sp988onWrFmjTZs2SZICAgJ07do1vfXWW4qOjlZmZqbmz59vNn7o0KHq2LGjAgMDde7cOe3cudOUwPlbo0ePVmhoqAYOHKj+/furcuXK2rlzp2JiYuTp6XnnG2GhF154QePHj1fPnj2VlJSk77//XgkJCerRo4fpqGVrtWjRQg0bNtSUKVM0Z84c0/2ff/7ZrCKidOOoZldXV7Vo0UKJiYlKTEzUqVOn9Mwzz8jHx0dGo1GLFy+WwWCQjc3d/Zu9oUOH6umnn9aIESPk7e2tYcOGacOGDYqOjlZKSoqaNWum7777TlOmTNHhw4eVkZFhdoy2n5+fWrdurX79+sne3l7PPPOM1TFMmzZNUVFRFvd3cnLSokWLFBMToyeffFKDBw9WQECAfvjhB61evVoFBQVatWqVqf+PP/6ob7/9VpcvX9aXX36p2bNna9++fdq0aZPFCci/5ePjo6efflrjxo3Txo0bTfcvX75c6v20t7dX1apVVbt2baWkpGjIkCE6e/asevXqJT8/P509e1bvvfeeJJni6datmz788EPFxcVpzJgxat++vR544AHl5eVp1qxZSkhIkK+vrz7//HMtX75c9erVM1szLi5OEydOVHJysuzs+N8KAAAAAAAAAADgr4sKmAAAAMD/gEmTJmns2LGaOnWqgoOD1aFDB23atMniI46fffZZdejQQa1atdIDDzyglStX3rPYHnroIa1evVqrVq1SgwYNNG7cOE2cOFG9evWyeI7ExETt379fjRs3VnJyslJTU01Jc2FhYUpNTdX06dPVoEEDLV++XFOnTjUbf/36dQ0aNMi0N4GBgeUmgAYGBurjjz9Wbm6umjZtqhYtWmjDhg1/WCKZo6Ojtm3bprNnz6pJkybq2rWr2rRpY5Y4eSeGDRumRYsWmR2lPG7cONWoUcPsGjFihKn99ddf14oVK3TgwAF17txZdevWVUxMjIqKipSVlXXXVQE7dOggPz8/UxXMKlWqaMeOHXrxxRf16quvKiAgQB06dJCtra327t2r5s2bl5ojPj5e586d0/PPP68qVapYHUPr1q3VunVrFRYWWjymS5cu+te//qVKlSrp+eefV7169RQXF6fz588rOTnZrG/btm1Vo0YNhYaGatSoUQoODtYXX3yhVq1aWR3rzYYNG6ZNmzZp3759pnsLFy4s9X7GxcWZ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ku//woULzb7/JQmykpSVlaUXXnhBTzzxhDZu3KgDBw7otddeK5UUau1n1d7eXq6urmYXAAAAAAAAAACAtUjABAAAAFBh6tevL3t7exUUFJglmAUEBMjHx8eiOSpXrmxxNUprBQcHKzMz0+xeZmamAgMDZWtra9EcJYlkN78ODg6WJGVnZ6uoqEgpKSlq3ry5AgMD9d///rfUHD4+Purfv7/WrVunxMRELVy4sMy1GjZsaPUR3fdScHCwcnNzdenSJdO9zMxM2djYmB1xfafGjRunI0eOaNWqVRb1Lyoq0ptvvik/P79bHtldUlHy5rjLUq1aNUVFRWnu3Lll9v3pp59uG9Mbb7whGxsbPfXUU7fte7c2b96sn3/+WQcOHDBLcFy5cqXWrVunn376SY0bN1a9evX0+uuv/+HJtdWrV1fNmjV14sSJUt//kgTVf/3rX6pTp45ee+01hYeHq27dujp16tQfGicAAAAAAAAAAEB5rCtlAQAAAAD3kIuLi4YPH65hw4apqKhIjzzyiM6fP6/MzEy5urqqTp06t53D19dXX3/9tXJyclSrVi25uLhYXCHwdhITE9WkSRNNmjRJsbGxysrK0pw5czRv3jyL58jMzNSMGTP01FNP6ZNPPtGaNWu0adMmSVJAQICuXbumt956S9HR0crMzNT8+fPNxg8dOlQdO3ZUYGCgzp07p507d5oSOH9r9OjRCg0N1cCBA9W/f39VrlxZO3fuVExMjOkI6t/TCy+8oPHjx6tnz55KSkrS999/r4SEBPXo0cN0HPXdqF69uv7+979r5syZZbb/+OOP+vbbb3X58mV9+eWXmj17tvbt26dNmzaZEma7du2qyMhIRUREyMvLS19//bVGjx6twMBA1atX77YxzJ07V5GRkWratKkmTpyohg0bqrCwUJ988onefvtts+Plf/75Z3377be6du2avv76a7333ntatGiRpk6dqoCAgLvejxJlHe8eEhKixYsXq1OnTgoLCzNrq1+/voYNG6bly5dr0KBBSktLU7t27RQZGanRo0crODhY165d0+7du/X9999bnGx8JyZMmKDBgwfLzc1NHTp00NWrV7V//36dO3dOf//731W3bl0VFBRo1apVatKkiTZt2qQPP/zwd4sHAAAAAAAAAADAGlTABAAAAFChJk2apLFjx2rq1KkKDg5Whw4dtGnT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IiIiIiIiknHq1CloaWkVufyM+vfvX2S8/fv3L+3wCmVra1tkzJGRkf9aHMVd61OnTv1rcRAREREREREREREREf0nUSntAIiIiIiIiOjnU7duXSQmJpZ2GAqZNm0aRo0aVei2kqaHKC0HDx5EdnZ2odsMDAz+tTiKu9aVK1f+1+IgIiIiIiIiIiIiIiL6T8IETCIiIiIiIpKhoaEBS0vL0g5DIZUqVUKlSpVKOwyFmJqalnYIAPAfd62JiIiIiIiIiIiIiIh+BpyCnIiIiIiIiIiIiIiIiIiIiIiIiIhIQayASUREREREREQE4OQMv592unoiIiIiIiIiIiIiIvr5sAImEREREREREREREREREREREREREZGCmIBJRERERERERERERERERERERERERKQgJmASERERERERERERERERERERERERESmICZhERERERERERERERERERERERERERApiAiYRERERERERERERERERERERERERkYKYgElEREREREREREREREREREREREREpCCV0g6AiIiIiIiIiOhn0HTiFiiraZR2GERERPSTuDA/oLRDICIiIiIiIqKfHCtgEhEREREREREREREREREREREREREpiAmYREREREREREREREREREREREREREQKYgImEREREREREREREREREREREREREZGCmIBJRERERERERERERERERERERERERKQgJmASERERERERERERERERERERERERESmICZhERERERERERERERERERERERERERApiAiYREREREdFPqlevXmjfvn1ph0FfgdeOiIiIiIiIiIiIiIjovx8TMImIiIiIiP5LmZmZYcmSJaUdxn+Uhw8fQiKRIDExsbRD+W7c3NwwfPjw0g7jh3rz5g26d+8OHR0d6OnpISgoCOnp6aUdFhERERERERERERER/ZdjAiYREREREVEp+PTpU2mHAADIzc1FXl5eaYdB9E26d++O69evIzo6Gvv378fJkyfRr1+/0g6LiIiIiIiIiIiIiIj+yzEBk4iIiIiI6Atubm4YMmQIhg8fjnLlysHAwADr169HRkYGevfuDW1tbVhaWuKvv/4S9rl27RpatWoFLS0tGBgYoEePHnj16pWoz8GDB2P48OGoUKECPD09AQDXr19HmzZtoKOjA21tbTRp0gT37t0TxbNgwQIYGRlBX18f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wgI9evRAZGQkPnz48FUxA5+n7XZ2dhaSLwGgUaNGSE9PF1UxLc6Xr6GCr82bN2/CxMRENIV4zZo1oaenh5s3bwIAXF1dcfr0aeTm5uLEiRNwc3ODm5sbYmNj8ezZM9y9e1euKeC/xvjx45Gamiosjx8//iHHISIiIiIiIiIiIiKi/25MwCQiIiIiIirEl0mREolEtE6auJaXl4f09HT4+PggMTFRtNy5c0c0TXTZsmVFfWpolFxpr7A4pNNWfy0NDQ1R4p08ShqPL2OLi4tD9+7d4e3tjf379+PSpUuYMGECPn36JNrnw4cPuHDhApSVlXHnzh2544mKisKoUaMQFBSEI0eOIDExEb1795bpX9G4fxQfHx+8efMG69evx7lz54SpsQvG26dPH0RHR+PJkycIDw9Hs2bNYGpqCuDzdO4XL17Eli1bYGRkhMmTJ8PR0RHv3r37oXEX51vHsWnTpnj//j0uXryIkydPihIwT5w4AWNjY7kScg0NDWUSaHNycvDmzRsYGhoWuo+amhp0dHRECxERERERERERERERkaKYgElERERERPSN6tSpg+vXr8PMzAyWlpai5cuky4IcHBxw6tQpZGdn/5C4VFVVkZub+0P6LsnZs2dhamqKCRMmoG7duqhevToePXok0y44OBhKSkr466+/sGzZMhw/flyu/s+cOQMXFxcMHDgQtWvXhqWlpaja6NdSVVUFALnHTVdXF0ZGRkJCJfA5+e/ChQvC369fv0ZSUhImTpyI5s2bw8bGBm/fvpXpy97eHnXr1sX69euxefNmBAYGirarqKjAw8MD8+bNw5UrV/Dw4UO5xquw14GNjQ3i4uKQn58vrDtz5gy0tbVRpUoVuc69ODY2Nnj8+LGosuSNGzfw7t071KxZEwCgp6cHBwcHrFixAmXKlIG1tTWaNm2KS5cuYf/+/XB1dZXrWM7Oznj37p1ozI8fP468vDxRZVIiIiIiIiIiIiIiIqLvjQmYRERERERE32jQoEF48+YN/Pz8cP78edy7dw+HDx9G7969i03kGzx4MNLS0tCtWzckJCTgzp072LRpE5KSkr5LXGZmZjh58iSePn2KV69efZc+5VW9enUkJycjKioK9+7dw7Jly7B7925RmwMHDiAsLAyRkZFo0aIFRo8ejZ49exaanFhY/wkJCTh8+DBu376NSZMm4fz5898cd6VKlaChoYFDhw7hxYsXSE1NLXGfYcOGYc6cOdizZw9u3bqFgQMHiipTlitXDvr6+li3bh3u3r2L48ePY+TIkYX21adPH8yZMwf5+fno0KGDsH7//v1YtmwZEhMT8ejRI/z+++/Iy8tDjRo1SozPzMwM586dw8OHD/Hq1Svk5eVh4MCBePz4MYYMGYJbt25h7969mDJlCkaOHCmasv1reXh4wN7eHt27d8fFixcRHx+PgIAAuLq6iqZnd3NzQ2RkpJBsWb58edjY2GDr1q1yJ2Da2NjAy8sLffv2RXx8PM6cOYPBgwejW7duMDY2/uZzISIiIiIiIiIiIiIiKgoTMImIiIiIiL6RsbExzpw5g9zcXLRs2RL29vYYPnw49PT0ik1m09fXx/Hjx5Geng5XV1c4OTlh/fr1MlM7f61p06bh4cOHqFatGipWrPhd+pRX27ZtMWLECAwePBi1atXC2bNnMWnSJGH7P//8g6CgIEydOhV16tQBAISEhMDAwAD9+/cvsf9ff/0VHTt2RNeuXdGgQQO8fv0aAwcO/Oa4VVRUsGzZMqxduxbGxsZo165difsEBwejR48e6NmzJ5ydnaGtrS1KnlRSUkJUVBQuXLgAOzs7jBgxAvPnzy+0Lz8/P6ioqMDPzw/q6urCej09PezatQvNmjWDjY0N1qxZgy1btsDW1rbE+EaNGgVlZWXUrFkTFStWRHJyMipXroyDBw8iPj4ejo6O6N+/P4KCgjBx4kQ5RqlkEokEe/fuRbly5dC0aVN4eHjAwsICW7duFbVzdXVFbm4u3NzchHVubm4y60oSGRkJa2trNG/eHN7e3mjcuDH+H3t3HpdT+v8P/HVX2rSJKInQKkmyldEyg8I0GGsi+55liBg7KVt2srUNkX0ZYyJLJEZEMVpFMtYZS2RN9fuj332+HXfLHVnmM6/n43Een+mc61zXda5z7uu+fe73/b42btxYKddCRERERERERERERERUGklh8fXGiIiIiIiIiOiLkQbMXrhwQQhMpU/v2bNn0NbWhs3Y9VBUUfvS3SEiIqKvRMISry/dBSIiIiIiIiL6AqTfG+Tk5EBLS6vMskqfqU9EREREREREVIq8vDw8evQIM2bMQOvWrRl8SURERERERERERERE9C/AJciJiIiIiIj+hWJjY6GhoVHqVhFl1RMbG/uJrqBsI0eOLLVP8ixRXpk+x/jExcXBwMAAFy5cwPr16+U+Lzs7u8z+ZWdnV7gvn6LOj+Hv719qXzp27PhZ+0JERERERERERERERFQclyAnIiIiIiL6F3r16hXu3LlT6nETExO567p+/XqpxwwNDaGm9vmXZH748CGePXtW4jEtLS3UrFnzs/XlaxwfqXfv3iErK6vU48bGxlBSqtjiF5+izo/x+PFjPH78uMRjampqMDQ0/Og2uAQ5ERERlYRLkBMRERERERH9N1VkCXIGYBIRERERERHRfxoDMImIiKgkDMAkIiIiIiIi+m+qSAAmlyAnIiIiIiIiIiIiIiIiIiIiIiIiIqqgz7dmGBERERERERHRV+y0n0e5v2QlIiIiIiIiIiIiIiKSYgZMIiIiIiIiIiIiIiIiIiIiIiIiIqIKYgAmEREREREREREREREREREREREREVEFMQCTiIiIiIiIiIiIiIiIiIiIiIiIiKiCGIBJRERERERERERERERERERERERERFRBDMAkIiIiIiIiIiIiIiIiIiIiIiIiIqogpS/dASIiIiIiIiKir4HjjO1QVFH70t0gIiKi9yQs8frSXSAiIiIiIiIiKhEzYBIRERERERERERERERERERERERERVRADMImIiIiIiIiIiIiIiIiIiIiIiIiIKogBmEREREREREREREREREREREREREREFcQATCIiIiIiIiIiIiIiIiIiIiIiIiKiCmIAJhERERERERERERERERERERERERFRBTEAk4iIiIiIiIiIiIiIiIiIiIiIiIioghiASURERERERERERERERERERERERERUQQzA/B9mbGyMFStWfOlufBZf07VmZWVBIpEgMTGxzHLOzs6YMGHCZ+kTERF9eoWFhRg+fDh0dXXleh+gr49EIsH+/fsByP9+/jnExcXB2toaVapUQdeuXb9oX4qP0YcKCwuDjo5OmWXmzJmDpk2bflQ7/1b3799H+/btUbVq1XLHib4+MTExkEgkePr0KQD5nvfPZePGjTAyMoKCgsIX/bfT+2P0oQYOHFjunMh/cxERERERERERERER0af2VQVg3r9/H2PHjkWDBg2goqICIyMjuLu74/jx4wBK/8L3/S9ebt68ib59+6J27dpQVVVFnTp10KVLF6SmpiIsLAwSiaTMLSsrq8x+zpkzBxKJBCNHjhTtT0xMLPH88PBw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ORER0deNS5ATERERERER0edUkSXIGYBJRERERERERP9pDMAkIiL6ujEAk4iIiIiIiIg+p4oEYHIJciIiIiIiIiIiIiIiIiIiIiIiIiKiCvo61ywlIiIiIiIiIvrMTvt5lPtLViIiIiIiIiIiIiIiIilmwCQiIiIiIiIiIiIiIiIiIiIiIiIiqiAGYBIRERERERERERERERERERERERERVRADMImIiIiIiIiIiIiIiIiIiIiIiIiIKogBmEREREREREREREREREREREREREREFcQATCIiIiIiIiIiIiIiIiIiIiIiIiKiClL60h0gIiIiIiIiIvoaOM7YDkUVtS/dDSIiov+8hCVeX7oLRERERERERERyYQZMIiIiIiIiIiIiIiIiIiIiIiIiIqIKYgAmEREREREREREREREREREREREREVEFMQCTiIiIiIiIiIiIiIiIiIiIiIiIiKiCGIBJRERERERERERERERERERERERERFRBDMAkIiIiIiIiIiIiIiIiIiIiIiIiIqogBmASEREREREREREREREREREREREREVUQAzCJiIio0oSFhUFHR+dLd+OrM3DgQHTt2vVLd+M/5b805l/btRobG2PFihVllpkzZw6aNm36WfpD9LWR5zXyX8bxISIiIiIiIiIiIiKifxMGYBIREZXj/v37GDt2LBo0aAAVFRUYGRnB3d0dx48fBwBIJBLs379f5rz3g6Ju3ryJvn37onbt2lBVVUWdOnXQpUsXpKamIiwsDBKJpMwtKyurzH7OmTMHEokEI0eOFO1PTEws8fzw8HC0aNEC6urq0NTUhJOTEw4dOvQhQ/RR/pcCLbKysiCRSJCYmPjZ2nR2dsaECRM+W3v09Vm5ciXCwsK+dDdKVdocKS/p3CaRSKCoqAgjIyMMHz4cjx8/FpUzNjYuce5cuHAhgP97fb6/9evXr8zjEokEf/zxBwCI5moFBQUYGBigd+/eyM7OFvXF2dlZKKeqqgozMzMEBASgsLBQKFOZ7ZWkrPqlW1hYGGJiYiCRSPD06VMMHDiwzPLGxsbC9ZU175R2fmRkZLn9/lSB/P9LPxAYMWIEGjZsCDU1Nejp6QmfJYobN24c7OzsoKKiUuFg57S0NLi4uKBWrVpQVVVFgwYNMGPGDOTl5QllNm3ahLZt26JatWqoVq0a2rVrh/j4eLnbKP4aKb69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D2bOnFlmvWUpq82PNWnSJFy8eBG2trbw8/PDsmXL4OrqWu55qqqqiI2NRadOnWBiYoLevXtDU1MTZ8+eFb32hg4dCltbW2zYsAHp6enCPZIna6ySkhIWLVqEli1bokmTJpg7dy68vb2xefNmoUxQUBDevn2LHj16iO5xRZYA/xjKysqYNm0amjRpAkdHRygqKgoZvz/0vZiIiIiIiIiIiIiIiOhDSAo/dg08IiIiIqL/Mc7OzmjatClWrFhRqfUuWLAA69evFwUNEhHRl/fs2TNoa2vDZux6KKqolX8CERERfVIJS7y+dBeIiIiIiIiI6D9M+r1BTk4OtLS0yiyr9Jn6RERERET0n7Nu3Tq0aNEC1atXR1xcHJYsWSKzvDgREREREREREREREREREf07cQlyIiKifwkNDY1St9jY2Epvr2PHjqW25+/vX+ntySs2NrbMsfhfkp2dXea1ZmdnfxV1fgx/f/9S+9KxY8dP0ubnHIOMjAx06dIFjRo1wvz58zFp0qQKLYP+JX2u19rnntv+l/wb58Ov5b3lax27iIiIUvtkZWVVKW186nvwtY4tERERERERERERERHRp8AlyImIiP4lrl+/XuoxQ0NDqKlV7nKZd+7cwatXr0o8pqurC11d3UptT16vXr3CnTt3Sj1uYmLyGXvzab179w5ZWVmlHjc2NoaSUsUSmn+KOj/G48eP8fjx4xKPqampwdDQsNLb/NrG4Gv1uV5rn3tu+1/yb5wPv5b3lq917J4/f44HDx6UeKxKlSqoV6/eR7fxqe/B1zq25eES5ERERF8XLkFORERERERERF9SRZYgZwAmEREREREREf2nMQCTiIjo68IATCIiIiIiIiL6kioSgMklyImIiIiIiIiIiIiIiIiIiIiIiIiIKogBmEREREREREREREREREREREREREREFaT0pTtARERERERERPQ1OO3nUe5SIkRERERERERERERERFLMgElEREREREREREREREREREREREREVEEMwCQiIiIiIiIiIiIiIiIiIiIiIiIiqiAGYBIRERERERERERERERERERERERERVRADMImIiIiIiIiIiIiIiIiIiIiIiIiIKogBmEREREREREREREREREREREREREREFaT0pTtARERERERERPQ1cJyxHYoqal+6G0RERP85CUu8vnQXiIiIiIiIiIg+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zPVwmXAiIiIiIiIiIiIiIvoaSQrlWSOMiIiIiIiIiOh/1LNnz6CtrQ2bseuhqKL2pbtDRET0n5OwxOtLd4GIiIiIiIiISCD93iAnJ6fcBBHMgElEREREREREREREREREREREREREVEEMwCQiIiIiIqJ/rYiICGhoaJS4WVlZfbJ2s7OzS21XQ0MD2dnZn6ztD9WxY8dS++vv718pbYwcObLUNkaOHFkpbRAREREREREREREREX0tuAQ5ERERERER/Ws9f/4cDx48KPFYlSpVUK9evU/S7rt375CVlVXqcWNjYygpKX2Stj/UnTt38OrVqxKP6erqQldX96PbePjwIZ49e1biMS0tLdSsWfOj2/gUuAQ5ERHRl8UlyImIiIiIiIjoa1KRJci/rm+DiIiIiIiIiCpAU1MTmpqan71dJSUlmJiYfPZ2P4ahoeEnb6NmzZpfbZAlERERERERERERERFRZeMS5EREREREREREREREREREREREREREFcQATCIiIiIiIiIiIiIiIiIiIiIiIiKiCuIS5EREREREREREAE77eUBLS+tLd4OIiIiIiIiIiIiIiP4lmAGTiIiIiIiIiIiIiIiIiIiIiIiIiKiCGIBJRERERERERERERERERERERERERFRBDMAkIiIiIiIiIiIiIiIiIiIiIiIiIqogBmASEREREREREREREREREREREREREVUQAzCJiIiIiIiIiIiIiIiIiIiIiIiIiCpI6Ut3gIiIiIiIiIjoa+A4YzsUVdS+dDeIiIj+JyQs8frSXSAiIiIiIiIi+uSYAZOIiIiIiIiIiIiIiIiIiIiIiIiIqIIYgElEREREREREREREREREREREREREVEEMwCQiIiIiIiIiIiIiIiIiIiIiIiIiqiAGYBIRERERERERERERERERERERERERVRADMImIiIiIiIiIiIiIiIiIiIiIiIiIKogBmEREREREREREREREREREREREREREFcQATCIiIiIiIiIiIiIiIiIiIiIiIiKiCmIAJhEREREREYmEhYVBR0enQuc4OztDIpFAIpFARUUFhoaGcHd3x969e2XKSsu9v0VGRgIAYmJiRPvV1NRgZWWFjRs3lluHdJszZ06Z/c3KyoJEIkFiYmKpZc6ePYtOnTqhWrVqUFVVhbW1NZYtW4b8/PwSy1tYWEBFRQX3798vdXyk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NF68eIFOnToBAGrUqIH27duXujR6RTk6OuLGjRs4fvw4evTogWvXrqFt27aYP3++UObp06fYu3evzLgUD0z18PBAfn6+sJz7jh07oKCggN69e5d6zcWfh+JcXFyQmJiI8+fPY8CAARg0aBC6d+9e6jVMmzYNOTk5wnb79u2PGhMiIiIiIiIiIiIiIvpvUvrSHSAiIiIiIqKSubu7o169eti0aRNq166NgoICNG7cGG/fvkWzZs1w8+ZN/P777zh27Bh69eqFdu3aYffu3TAyMkJaWhqOHTuG6OhojB49GkuWLMGpU6eQm5sLRUVFJCQkQFFRUdTex2S6LE1+fj4yMjLQokUL0X59fX2YmJiUeW79+vWho6MDALCyssL58+exYMECjBo1qtL7WZyZmRkAICUlBQ4ODjLHU1JS0KhRIwBAcnIy/vjjD8THx8PX11cok5+fj8jISCHzaHH9+vXD0qVL4efnJwTVyktBQUE0bk2aNMHRo0exaNEiuLu7AyjKPPn48WOoqakJ5QoKCnDlyhXMnTsXCgof/1vMKlWqoG3btmjbti18fX3h5+eHefPmwdfXF8rKyti2bRtev34tWjK+sLAQBQUFSE9Ph5mZGbS0tNCjRw+EhoZi8ODBCA0NRa9evWSew/evuSRVq1YVyoSEhMDGxgbBwcEYMmRIieVVVFSgoqLykaNARERERERERERERET/dcyASURERERE9BV69OgR0tLSMGPGDHz33XewtLTEkydPRGW0tLTQu3dvbNq0CTt27MCePXvw+PFjAICamhrc3d2xatUqxMTE4Ny5c7h69SpsbW2Rn5+Phw8fwsTERLTp6+sDAJSVlZGfn18p1xEeHo4nT56UmY1QXoqKinj16lUl9KpsHTp0gK6uLgIDA2WOHTx4UMhMChQFOzo6OiIpKUmUoXHixImlLkOuoKCAgIAABAUFySzN/iGKj8ujR49w4MABREZGivpz+fJlPHnyRJQptTI1atQI7969w+vXrwEUjcukSZNEfUhKSkLbtm1FmTiHDBmCM2fO4NChQzh79mypAZMVoaCggJ9//hkzZsz4LM8LERERERERERERERH9dzEDJhERERER0VeoWrVqqF69OjZu3AgDAwNkZ2dj6tSpwvFly5bBwMAAtra2UFBQwK5du6Cvrw8dHR2EhYUhPz8frVq1grq6OrZu3Qo1NTXUq1cP1atXh6enJ7y8vBAYGAhbW1v8/fffOH78OJo0aYLOnTvD2NgYubm5OH78OGxsbKCurg51dfVy+/zy5Uvcv38f7969w19//YV9+/Zh+fLlGDVqFFxcXERlnz59ivv374v2aWpqomrVqsLfDx8+xOvXr/HmzRvEx8djy5Yt6NGjx0eOrFhaWprMPisrK2zYsAF9+vTB8OHD4e3tDS0tLRw/fhyTJ09Gjx490KtXL+Tl5WHLli2YN28eGjduLKpj6NChWLZsGa5duwYrKyuZNjp37oxWrVphw4YNqFWrltz9LSwsFMbt1atXiI6OxpEjRzBr1iwAwJYtW1C9enX06tVLZtn3Tp06ITg4GG5ubsK+q1evQlNTU/hbIpHAxsamzD44OzvDw8MDzZs3R/Xq1ZGcnIyff/4ZLi4u0NLSQmJiIi5duoSIiAhYWFiIzvXw8MC8efPg5+cHJSUlODo6wsTEBF5eXrCwsCgx42jxay6uZs2apWbz7NmzJyZPnoy1a9fCx8enzOshIiIiIiIiIiIiIiL6UAzAJCIiIiIi+gopKCggMjIS48aNQ+PGjWFubo5Vq1bB2dkZQFGw4uLFi5GRkQFFRUW0aNEChw8fhoKCAnR0dLBw4UJMnDgR+fn5sLa2xq+//orq1asDAEJDQ+Hn54dJkybhzp07qFGjBlq3bo3vv/8eAODg4ICRI0eid+/eePToEWbPno05c+aU2+dNmzZh06ZNUFZWRvXq1WFnZ4cdO3agW7duMmUHDRoksy8gIEAUZGpubg4AUFJSgpGREUaMGCFXPyqiT58+Mvtu376NHj164OTJk1iwYAHatm2L169fw9TUFNOnT8eECRMgkUhw8OBBPHr0qMTrs7S0hKWlJYKDg7Fs2bIS2160aFGJAYdlefbsGQwMDAAULaNdr149YelvoGj57W7duskEXwJA9+7d0b9/f/zzzz/CPkdHR1EZRUVFvHv3rsw+uLq6Ijw8HD///DNevnyJ2rVr4/vvvxeCQIODg9GoUSOZ4EsA6NatG7y9vXH48GH88MMPkEgkGDx4MH7++WdMmzat3Gsu7t69e0LW1vcpKSnB29sbixcvxqhRo0SBvURERERERERERERERJVFUlhYWPilO0FERERERERE9KU8e/YM2trasBm7Hooqal+6O0RERP8TEpZ4fekuEBERERERERF9EOn3Bjk5OdDS0iqzbMlrdRERERERERERERERERERERERERERUakYgElERERERERlio2NhYaGRqnb12jkyJGl9nfkyJFfunslsrKyKrXPERERn60fZd3r2NjYz9YPIiIiIiIiIiIiIiKir53Sl+4AERERERERfd2aN2+OxMTEL92NCpk3bx58fHxKPFbeUhFfyuHDh5GXl1fisVq1an22fpR1rw0NDT9bP4iIiIiIiIiIiIiIiL52DMAkIiIiIiKiMqmpqcHExORLd6NCatasiZo1a37pblRIvXr1vnQXAOBfd6+JiIiIiIiIiIiIiIi+FC5BTkRERERERERERERERERE/4+9+47ruvr//39jCIIMRU1AUQJUEPfe20CNFAdK7pXmzkytLPfIlSvNlOFAcZuZuUhxbzG3aJrmrEwUJwK/P/zx/PgSFCjMen/v18vlebnEOed5zuN5ni9e1sVHjyMiIiIiIpmkCpgiIiIiIiIiIsD20cH/2iPqRURERERERERERETk30cVMEVEREREREREREREREREREREREREMkkJmCIiIiIiIiIiIiIiIiIiIiIiIiIimaQETBERERERERERERERERERERERERGRTFICpoiIiIiIiIiIiIiIiIiIiIiIiIhIJikBU0REREREREREREREREREREREREQkk5SAKSIiIiIiIiIiIiIiIiIiIiIiIiKSSZavOwARERERERERkX+DmkOXYGFt87rDEBER+c85NLH96w5BREREREREROS1UAVMEREREREREREREREREREREREREZFMUgKmiIiIiIiIiIiIiIiIiIiIiIiIiEgmKQFTRERERERERERERERERERERERERCSTlIApIiIiIiIiIiIiIiIiIiIiIiIiIpJJSsAUEREREREREREREREREREREREREckkJWCKiIiIiIiIiIiIiIiIiIiIiIiIiGSSEjBFRERE5D+hdu3a9O/f/3WHka7/Spzy7zR8+HDy5cuHmZkZa9ased3hSCa5u7szdepU4+d/y3s8ffo0lStXJnv27JQuXfq1xvL8Hv0V27Ztw8zMjNu3b79wTHh4ODlz5vxb64iIiIiIiIiIiIiIiKRHCZgiIiLyr3P9+nX69OmDh4cH1tbWuLm5ERAQQFRUFPDihJaOHTvStGlT4+cLFy7w7rvv4urqSvbs2SlQoABN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WzY2bNhgPOP8+fO5f/8+48aNw8XFxbiaNWtmzBESEsKff/5J2bJladeuHX379jX5fTMzM2P9+vXUrFmTTp06UaRIEVq3bs0vv/xifC+/+eabfP/992zevJlSpUoxefJk5s2bh5+fn8mzxMXFUbt2bZNYli5daoz5+uuvKVOmDN26dQOgZs2alClThrVr1wJPq2qeO3eOqKgoChQoYDJPirp167J48WLWrFlDmTJl8Pf3x9ramg0bNhgJgrVr12b58uWsXbuW0qVLU7duXZNKjBn5DgIYMWIEkZGRlCxZkgULFrBkyRKTI+EjIiLw9vamXr16NGrUiOrVq5scmT506FDKli2Ln58ftWvXxtnZmaZNm5qs8dlnn/Hhhx/y+eef4+PjQ6tWrV5aqdXa2prIyEhq1aqFr68vY8aM4YMPPjBZt0iRImzatImjR49SsWJFqlSpwrfffoulpSUABw8epEyZMkbC6oABAyhTpgyff/55hvfo8OHD7Nu3j2PHjuHl5WXyri5fvgw8TYJeuXIla9asoVSpUnz99depEpcrV67M3LlzmTZtGqVKlWLTpk2pEu5FREREREREREREREReBbPk5OTk1x2EiIiIiEhWcHd3p3///vTv3/91h5JpO3bsoF69ely+fNlIWBMRkX/GnTt3cHR0pFSfr7GwTl3JVERERF7u0MT2rzsEEREREREREZEsk/L3BnFxcTg4OLx0rOU/FJOIiIiIiKTh0aNH/PbbbwwfPpyWLVsq+VJERERERERERERERERE5D9CR5CLiIiIvICdnd0Lrx07dmT5eg0bNnzhes8ft/pPiYiIeGFMvr6+ryWmf8qlS5de+hm4dOlSlqyzZMkSChUqxO3bt5kwYUKG79uxY8dL4/srXsWcf0ePHj1eGEuPHj3+8XhERERERERERERERERERJ6lI8hFREREXuDcuXMv7MufPz82Nll7ROmVK1d48OBBmn1OTk44OTll6XoZcffuXW7cuJFmX7Zs2ShUqNA/HNE/58mTJ1y8ePGF/e7u7lhavr6C8g8ePODKlSsv7Pfy8vpXzPl33Lx5kzt37qTZ5+DgwBtvvPGPxiMi/7t0BLmIiMjfoyPIRUREREREROR/iY4gFxEREckC/3SyWf78+f/R9TLC3t4ee3v71x3Ga2FpafmPfwYyw8bGJsvjexVz/h1vvPGGkixFRERERERERERERERE5F9LR5CLiIiIiIiIiIiIiIiIiIiIiIiIiGSSKmCKiIiIiIiIiADbRwene5SIiIiIiIiIiIiIiIhIClXAFBERERERERERERERERERERERERHJJCVgioiIiIiIiIiIiIiIiIiIiIiIiIhkkhIwRUREREREREREREREREREREREREQySQmYIiIiIiIiIiIiIiIiIiIiIiIiIiKZpARMEREREREREREREREREREREREREZFMsnzdAYiIiIiIiIiI/BvUHLoEC2ub1x2GiIjIf86hie1fdwgiIiIiIiIiIq+FKmCKiIiIiIiIiIiIiIiIiIiIiIiIiGSSEjBFRERERERERERERERERERERERERDJJCZgiIiIiIiIiIiIiIiIiIiIiIiIiIpmkBEwRERERERERERERERERERERERERkUxSAqaIiIiIiIiIiIiIiIiIiIiIiIiISCYpAVNEREREREREREREREREREREREREJJOUgCkiIiIiIiIiIiIiIiIiIiIiIiIikklKwBQRERERERERERERERERERERERERySQlYIqIiIiIiEiWCw8PJ2fOnH/p3iVLlmBhYUGvXr3S7J87dy6lSpXCzs6OnDlzUqZMGcaNGweAu7s7ZmZmL7w6duyY7vrR0dHUrVsXJycnbG1tKVy4MB06dODx48epxnbv3h0LCwuWL19utE2ePJlcuXLx8OHDVOPv37+Pg4MD06dPf2m848ePB+DixYsm7U5OTtSqVYsdO3ak+xzP+/XXX7GysqJ48eKp+lLWiYmJSdVXu3Zt+vfvb/ycEnNkZGSqsb6+vpiZmREeHp6hmJ59fgsLC1xdXenSpQt//vlnmuO9vb2xtrbm+vXr6cYpIiIiIiIiIiIiIiLyqikBU0RERERERP5VQkJCGDRoEEuWLEmVxBgaGkr//v3p27cvMTEx7Nq1i0GDBhEfHw/AgQMHuHbtGteuXWPlypUAnDlzxmibNm3aS9c+efIk/v7+lC9fnu3bt3Ps2DFmzJiBlZUViYmJJmPv379PZGQkgwYNIjQ01Ghv164d9+7dY9WqVanmX7FiBY8fP6Zt27ZG28iRI434Uq4+ffqY3LdlyxauXbvG9u3bcXV15e233+bGjRsZ2M3/Ex4eTlBQEHfu3GHfvn2Zuvd5bm5uhIWFmbTt3buX69evkyNHjkzN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5ubm5MyZk7lz51KtWjVKlizJli1b+O6778idOzfwtPpg+/bt+fDDDylatChNmzblwIEDFCxYEICqVavSo0cPWrVqRd68eZkwYcJLYw0NDSUwMDBV8iVA8+bNWbt2Lb///jv169dn7969tGzZkiJFitC8eXOyZ89OVFSUEdvfUbFiReLj4+nRowe+vr7UqlWLvXv3smbNGmrVqsWNGzf4/vvvad68eap7zc3NCQwMJCQkxCR2a2trbG1tadq0aZprfv7557i4uJhcgwYNemmcHTp0ICEhgZkzZ750XEhICMWKFUuVfAkQGBjIzZs3Wb9+PQCDBg1i2LBhfPHFF5QsWZLmzZuTI0cOtm7danIs/PNy58790v70pDy/q6srb7/9Njly5GDTpk3kzp2btWvX8scffxAYGJjqPh8fH3x8fEz2e/HixZQpU8bkmjt37l+OTURERERERERERERE5GXMkpOTk193ECIiIiIiIiIir8udO3dwdHSkVJ+vsbD+68mkIiIi/686NLH96w5BRERERERERCTLpPy9QVxc3AtPLEuhCpgiIiIiIiIiIiIiIiIiIiIiIiIiIpmkBEwRERERERF55Xbs2IGdnd0Lr3/K2LFjXxhDw4YN/7E4stLL9nXHjh2vLa6IiIgXxuXr6/va4hIREREREREREREREckqlq87ABEREREREfnfV758eWJiYl53GPTo0YOgoKA0+2xs/ptHT79sX/Pnz//PBfKcd955h0qVKqXZly1btn84GhERERERERERERERkaynBEwRERERERF55WxsbPDy8nrdYeDk5ISTk9PrDiNL/Rv2NS329vbY29u/7jBEREREREREREREREReGR1BLiIiIiIiIiIiIiIiIiIiIiIiIiKSSaqAKSIiIiIiIiICbB8djIODw+sOQ0RERERERERERERE/iNUAVNEREREREREREREREREREREREREJJOUgCkiIiIiIiIiIiIiIiIiIiIiIiIikklKwBQRERERERERERERERERERERERERySQlYIqIiIiIiIiIiIiIiIiIiIiIiIiIZJISMEVEREREREREREREREREREREREREMsnydQcgIiIiIiIiIvJvUHPoEiysbV53GCIiIv9ahya2f90hiIiIiIiIiIj8q6gCpoiIiIiIiIiIiIiIiIiIiIiIiIhIJikBU0REREREREREREREREREREREREQkk5SAKSIiIiIiIiIiIiIiIiIiIiIiIiKSSUrAFBERERERERERERERERERERERERHJJCVgioiIiIiIiIiIiIiIiIiIiIiIiIhkkhIwRUREREREREREREREREREREREREQySQmYIiIiIiIiIvJS7u7uTJ061fjZzMyMNWvWvLZ4RERERERERERERERE/g2UgCkiIiIiIpIJHTt2pGnTpsY/m5mZGVfu3Lnx9/fnp59+AiA8PNykP63r4sWLDB8+PM2+LVu2ADB37lxq1KhBrly5yJUrF/Xr12f//v3pxvro0SN8fX157733UvUNGjSIN998k7t3774wzuzZs6e6b8+ePVhYWNC4ceNUfRcvXjS538nJiVq1arFjx44M7a27u/tL96pjx44AJm0ODg5UqFCBb7/9NkNrPOvBgwc4OTmRJ08eHj169MJ4IiMjU/X5+vpiZmZGeHg427ZtS/c9b9u27aWxpLwDf39/k/bbt2+nuv9Fa0RGRqb6TD5/ubu7Z3qf0nLt2jUaNmyYJXOlWLJkCRYWFvTq1StVX8oe3759O817hw8fTunSpbM0HhERERERERERERERkfQoAVNERERERORv8Pf359q1a1y7do2oqCgsLS15++23AWjVqpXRd+3aNapUqUK3bt1M2tzc3ICnCX3Ptl+7do2aNWsCT5PPgoOD2bp1K3v27MHNzY233nqLK1euvDQ2a2trFixYQHh4OBs3bjTa9+7dy5dffkl4eDj29vYAODg4pFr/l19+STVnSEgIffr0Yfv27Vy9ejXNdbds2cK1a9fYvn07rq6uvP3229y4cSPdvTxw4ICx9sqVKwE4c+aM0TZt2jRjbFhYGNeuXePgwYNUq1aNFi1acOzYsXTXeNbKlSvx9fXF29v7hdUc3dzcCAsLM2nbu3cv169fJ0eOHABUrVrVZN+CgoJMPhfXrl2jatWq6cZjaWnJli1b2Lp1a7pjU57/2atp06ZMmzbNpO35sQcOHEh37oxwdnbG2to6S+ZKERISwqBBg1iyZAkPHz7M0rlFREREREREREREREReBSVgioiIiIiI/A3W1tY4Ozvj7OxM6dKlGTJkCJcvX+a3337DxsbG6HN2dsbKygpbW1uTNgsLC+Bp8t2z7SnjASIiIujZsyelS5fG29ubefPmkZSURFRUVLrxlStX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488//6RLly4mlS4BmjdvTkhICD169EhzXjMzM/r27cvw4cPp3r07tra2WRLv8/r3709gYCCDBg0if/78Lxz322+/8d1337F27VqKFy9u0te+fXsCAwO5detWquPMfXx8+P33319Z/M/Lnj07I0aMoFevXmn23759O9X7sre3J0eOHH9r3aJFi+Lv70/37t2ZPXs2lpaW9O/f36Q6ZVpy5MhB06ZN+eyzzzh16pRxVH16Fi5cSO7cuQkKCsLMzMykr1GjRoSEhODv72+0HTt2DHt7e+NnMzMzSpUqBcCDBw+IiYkxmcPe3h5PT88MxSIiIiIiIiIiIiIiIpJZqoApIiIiIiLyN2zYsAEXFxdcXFyoVKkSBw4cYPny5dSuXTvL1pg9ezaPHz+mRYsWxlouLi5MmjQpy9a4c+eOydwp182bNwkJCaF+/fqpki/haQLmwYMH+emnn144d4cOHUhISGDmzJlZFu/z/P39efPNN9OtgrlgwQJy5MhBvXr1UvXVq1cPGxsbFi1alOa9uXPnTjcRMSt16NABDw+PNPs6deqU6l3NmDEjS9YNCwvD1dWVWrVq0axZM957770MHe3epk0bjh49So0aNShYsGCG1goNDSUwMDBV8iU8/WytXbuW33//3WirWbMmZcqUMa5y5coZfWfPnjXpK1OmDN27d89QHCIiIiIiIiIiIiIiIn+FWXJycvLrDkJERERERERE5HW5c+cOjo6OlOrzNRbW/1ySrYiIyH/NoYntX3cIIiIiIiIiIiKvXMrfG8TFxeHg4PDSsaqAKSIiIiIiIiIiIiIiIiIiIiIiIiKSSUrAFBERERER+Q/bsWMHdnZ2L7z+bV4W644dO7JkDV9f3xeuERERkSVr/Fdj+qc/L/+1z6eIiIiIiIiIiIiIiEhmWL7uAEREREREROSvK1++PDExMa87jAx7Waz58+fPkjXWr19PQkJCmn358uXLkjUy698S0z/9efmvfT5FREREREREREREREQyQwmYIiIiIiIi/2E2NjZ4eXm97jAy7J+ItVChQq98jcz6t8T0T39e/mufTxERERERERERERERkczQEeQiIiIiIiIiIiIiIiIiIiIiIiIiIpmkBEwRERERERERERERERERERERERERkUzSEeQiIiIiIiIiIsD20cE4ODi87jBEREREREREREREROQ/QhUwRUREREREREREREREREREREREREQySQmYIiIiIiIiIiIiIiIiIiIiIiIiIiKZpARMEREREREREREREREREREREREREZFMUgKmiIiIiIiIiIiIiIiIiIiIiIiIiEgmKQFTRERERERERERERERERERERERERCSTLF93ACIiIiIiIiIi/wY1hy7BwtrmdYchIiLyQocmtn/dIYiIiIiIiIiIyDNUAVNEREREREREREREREREREREREREJJOUgCkiIiIiIiIiIiIiIiIiIiIiIiIikklKwBQRERERERERERERERERERERERERySQlYIqIiIiIiIiIiIiIiIiIiIiIiIiIZJISMEVEREREREREREREREREREREREREMkkJmCIiIiIiIiIiIiIiIiIiIiIiIiIimaQETBERERGRLOTu7s7UqVNfdxjyH5ScnMx7772Hk5MTZmZmxMTEvO6QJJPMzMxYs2YNABcvXvzXvMddu3ZRokQJsmXLRtOmTV9rLM/u0V8VHh5Ozpw5Xzpm+PDhlC5d+m+tIyIiIiIiIiIiIiIikh4lYIqIiMj/pOvXr9OnTx88PDywtrbGzc2NgIAAoqKigBcngHTs2NEkOeXChQu8++67uLq6kj17dgoUKECTJk04ffo04eHhmJmZvfS6ePHiS+McPnw4ZmZm9OjRw6Q9JiYmzfvnz59PhQoVsLW1xd7enlq1arFu3bq/skXynIwk9PzXZEWi03/Z3bt36d+/P4UKFcLGxoaqVaty4MABkzE3btygY8eOuLq6Ymtri7+/P7GxsZla58yZM9SpU4d8+fKRPXt2PDw8GDp0KAkJCcaYhIQERo4ciaenJ9mzZ6dUqVJs2LDBZJ4NGzYQHh7OunXruHbtGsWLF2f27NmULFkSBwcHHBwcqFKlCj/88EOm4ktOTmbSpEkUKVIEa2tr8ufPz5gxY4z+VatW0aBBA/LmzWussXHjxkytkVHLly/H29ub7NmzU6JECdavX2/0JSQkMHjwYEqUKEGOHDlwdXWlffv2XL161WSOMWPGULVqVWxtbdP8nT169CjBwcG4ublhY2ODj48P06ZNSzUuIiKCUqVKYWtri4uLC507d+aPP/7I8mdOz6VLl2jcuDG2tra88cYbfPTRRzx58iRL1xgwYAClS5fmwoULhIeHA6T5Z1ZkZGSG51y1ahVvvfUWuXPn/suJphcvXqRLly68+eab2NjY4OnpybBhw3j8+HGm5xIREREREREREREREXkdlIApIiIi/3MuXrxIuXLl+PHHH5k4cSLHjh1jw4YN1KlTh169emV4noSEBBo0aEBcXByrVq3izJkzLF26lBIlSnD79m1atWrFtWvXjKtKlSp069bNpM3NzS3ddbJnz05ISEi6SV8DBw6ke/futGrVip9++on9+/dTvXp1mjRpwsyZMzP8XCL/r+jatSubN29m4cKFHDt2jLfeeov69etz5coV4GliYtOmTfn555/59ttvOXLkCIUKFaJ+/frcu3cvw+tky5aN9u3bs2nTJs6cOcPUqVOZO3cuw4YNM8YMHTqUOXPmMGPGDE6ePEmPHj0IDAzkyJEjxpjz58/j4uJC1apVcXZ2xtLSkgIFCjB+/HgOHTrEwYMHqVu3Lk2aNOHEiRMZjq9fv37MmzePSZMmcfr0adauXUvFihWN/u3bt9OgQQPWr1/PoUOHqFOnDgEBASaxZYXdu3cTHBxMly5dOHLkCE2bNqVp06YcP34cgPv373P48GE+++wzDh8+bHzvvvPOOybzPH78mJYtW/L++++nuc6hQ4d44403WLRoESdOnODTTz/l448/Nvme3LVrF+3bt6dLly6cOHGC5cuXs3//frp165alz5yexMREGjduzOPHj9m9ezfz588nPDyczz//PEvXOX/+PHXr1qVAgQImSathYWEmf2ZlpjrmvXv3qF69Ol988cVfjuv06dMkJSUxZ84cTpw4wZdffsnXX3/NJ5988pfnFBERERERERERERER+ScpAVNERET+5/Ts2RMzMzP2799P8+bNKVKkCL6+vgwYMIC9e/dmeJ4TJ05w/vx5Zs2aReXKlSlUqBDVqlVj9OjRVK5cGRsbG5ydnY3LysoKW1tbkzYLC4t01ylatCh16tTh008/feGYvXv3MnnyZCZOnMjAgQPx8vLCx8eHMWPG0L9/fwYMGMDly5fTXSulyuO6desoWrQotra2tGjRgvv37zN//nzc3d3JlSsXffv2JTEx0bhv4cKFlC9fHnt7e5ydnXn33Xe5efOm0T9y5EhcXV1Nqsc1btyYOnXqkJSUlG5ct2/fpnv37kYFweLFi5tU9ly5ciW+vr5YW1vj7u7O5MmTTe5Pq9Jjzpw5jUpvKUcBr1q1ijp16mBra0upUqXYs2cPANu2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Pz/Kli1rssbs2bNp0aIFPXv2xNvbm27dur20UnO2bNn46quvqFKlCqVLl2bOnDlMmTKFYcOGGWNq167N8uXLWbt2LaVLl6Zu3brs37/f6F+7di1lypQxKqa2bt2aMmXKGAnKGdmjzZs3c+7cOaKioihQoIDJ+0pRuXJl5s6dy7Rp0yhVqhSbNm1K9X3SqlUrPvvsMwYNGkS5cuX45ZdfeP/991/4/CIiIiIiIiIiIiIiIlnFLPnZswEzICEhgWnTpnH58mU6duxo/EXul19+ib29vVExSkREREREMm7hwoV88MEHXL161aj0JyIi/4w7d+7g6OhIqT5fY2Ftk/4NIiIir8mhie1fdwgiIiIiIiIiIv/zUv7eIC4uzig28iKZPoJ8z5499O/f36gqk6JPnz4mVUlERERERCR99+/f59q1a4wfP57u3bsr+VJERERERERERERERERE5D8i00eQ16lTh1u3bqVqj4uLo06dOlkSlIiIiMj/Cjs7uxdeO3bsyPL1GjZs+ML1xo4dm+XrZURERMQLY/L19X0tMWXEjh07Xvr+ssqECRPw9vbG2dmZjz/+OMP3vYp9/be9q3/j51lEREREREREREREREREJEWmjyA3Nzfnxo0b5M2b16T97NmzlC9fnjt37mRpgCIiIiL/ZefOnXthX/78+bGxydpjTq9cucKDBw/S7HNycsLJySlL18uIu3fvcuPGjTT7smXLRqFChf7hiDLmwYMHXLly5YX9Xl5e/2A0qb2Kff23vat/4+dZRP436QhyERH5r9AR5CIiIiIiIiIir94rOYK8WbNmAJiZmdGxY0esra2NvsTERH766SeqVq36F0MWERER+d/0Tyfp5c+f/x9dLyPs7e2xt7d/3WFkmo2NzWtPsnyZV7Gv/7Z39W/8PIuIiIiIiIiIiIiIiIiIpMhwAqajoyMAycnJ2Nvbm1RrsrKyonLlynTr1i3rIxQRERERERERERERERERERERERER+ZfJcAJmWFgYAO7u7gwcOJAcOXK8sqBERERERERERERERERERERERERERP7NzJKTk5NfdxAiIiIiIiIiIq/LnTt3cHR0JC4uDgcHh9cdjoiIiIiIiIiIiIiIvEaZ+XuDDFfAfNaKFStYtmwZly5d4vHjxyZ9hw8f/itTioiIiIiIiIiIiIiIiIiIiIiIiIj8Z5hn9obp06fTqVMn8uXLx5EjR6hYsSK5c+fm559/pmHDhq8iRhERERERERERERERERERERERERGRf5VMJ2DOmjWLb775hhkzZmBlZcWgQYPYvHkzffv2JS4u7lXEKCIiIiIiIiIiIiIiIiIiIiIiIiLyr5LpBMxLly5RtWpVAGxsbLh79y4A7dq1Y8mSJVkbnYiIiIiIiIiIiIiIiIiIiIiIiIjIv1CmEzCdnZ25desWAAULFmTv3r0AXLhwgeTk5KyNTkRERERERERERERERERERERERETkX8gyszfUrVuXtWvXUqZMGTp16sQHH3zAihUrOHjwIM2aNXsVMYqIiIiIiIiIvHI1hy7BwtrmdYchIiL/Dzs0sf3rDkFERERERERERDIh0wmY33zzDUlJSQD06tWL3Llzs3v3bt555x26d++e5QGKiIiIiIiIiIiIiIiIiIiIiIiIiPzbZDoB09zcHHPz/zu5vHXr1rRu3TpLgxIRERERERERERERERERERERERER+TczT39Iajt27KBt27ZUqVKFK1euALBw4UJ27tyZpcGJiIiIiIiIiIiIiIiIiIiIiIiIiPwbZToBc+XKlfj5+WFjY8ORI0d49OgRAHFxcYwdOzbLAxQRERERERERERERERERERERERER+bfJdALm6NGj+frrr5k7dy7ZsmUz2qtVq8bhw4ezNDgRERERERERERERERERERERERERkX+jTCdgnjlzhpo1a6Zqd3R05Pbt21kRk4iIiIiIiIiIiIiIiIiIiIiIiIjIv1qmEzCdnZ05d+5cqvadO3fi4eGRJUGJiIiIiIiIyH+PmZkZa9asAeDixYuYmZkRExPzWmMSERERERERERERERF5VTKdgNmtWzf69evHvn37MDMz4+rVq0RERDBw4EDef//9VxGjiIiIiIiI/I8JDw8nZ86cJm0JCQkMHjyYEiVKkCNHDlxdXWnfvj1Xr17N8LzR0dHUrVsXJycnbG1tKVy4MB06dODx48epxnbv3h0LCwuWL19utE2ePJlcuXLx8OHDVOPv37+Pg4MD06dPB8Dd3R0zM7NU1/jx44H/S0BMuZycnKhVqxY7duzI8POk+PXXX7GysqJ48eKp+l6W6Fi7dm369+9v/JwSc2RkZKqxvr6+mJmZER4enun40uLm5sa1a9fSjPmvSGu/CxQoYDLGz88PCwsLDhw4kCVrioiIiIiIiIiIiIiIvEyGEjB/+uknkpKSAPj444959913qVevHvHx8dSsWZOuXbvSvXt3+vTp80qDFRERERERkf9d9+/f5/Dhw3z22WccPnyYVatWcebMGd55550M3X/y5En8/f0pX74827dv59ixY8yYMQMrKysSExNTrRUZGcmgQYMIDQ012tu1a8e9e/dYtWpVqvlXrFjB48ePadu2rdE2cuRIrl27ZnI9/9/GW7Zs4dq1a2zfvh1XV1fefvttbty4kZmtITw8nKCgIO7cucO+ffsyde/z3NzcCAsLM2nbu3cv169fJ0eOHH9r7mdZWFjg7OyMpaVlls35/H4fOXLE6Lt06RK7d++md+/eJu9URERERERERERERETkVclQAmaZMmX4/fffAfDw8KBHjx7cunWL48ePs3fvXn777TdGjRr1SgMVERERERGRrLdhwwaqV69Ozpw5yZ07N2+//Tbnz58H4PHjx/Tu3RsXFxeyZ89OoUKFGDduHADJyckMHz6cggULYm1tjaurK3379jXmffToEQMHDiR//vzkyJGDSpUqsW3bNgC2bdtGp06diIuLMyoZDh8+HEdHRzZv3kxQUBBFixalcuXKzJw5k0OHDnHp0qV0n2XTpk04OzszYcIEihcvjqenJ/7+/sydOxcbGxuTscuXL6dYsWIMGTKE7du3c/nyZQDeeOMNAgIC0kzgCw0NpWnTpjg5ORlt9vb2ODs7m1zPJzHmzp0bZ2dnihcvzieffJLpJMrk5GTCwsJo164d7777LiEhIRm+Ny1t2rQhOjraeOaUZ2vTpk2mkiVjY2OpWbMm2bNnp1ixYmzevNmk/9nKnElJSRQoUIDZs2ebjDly5Ajm5ub88ssvGVrz+f3Omzev0RcWFsbbb7/N+++/z5IlS3jw4EGGn0VEREREREREREREROSvyFACZs6cOblw4QLw9C9QkpKSsLKyolixYlSsWBE7O7tXGqSIiIiIiIi8Gvfu3WPAgAEcPHiQqKgozM3NCQwMJCkpienTp7N27VqWLVvGmTNniIiIwN3dHYCVK1fy5ZdfMmfOHGJjY1mzZg0lSpQw5u3duzd79uwhMjKSn376iZYtW+Lv709sbCxVq1Zl6tSpODg4GJUMBw4cmGZ8KUmazx9XnhZnZ2ej0mR6QkJCaNu2LY6OjjRs2NDk2O0uXbrw448/miQF/vzzz2zfvp0uXbqkO/eLPHjwgAULFgBgZWWV4fu2bt3K/fv3qV+/Pm3btiUyMpJ79+795Tjy5cuHn58f8+fPB55WA126dCmdO3fO8BxJSUk0a9YMKysr9u3bx9dff83gwYNfON7c3Jzg4GAWL15s0h4REUG1atUoVKjQX3uY/19Kkmrbtm3x9vbGy8uLFStWvHD8o0ePuHPnjsklIiIiIiIiIiIiIiKSWRlKwGzevDm1atXizTffxMzMjPLly+Ph4ZHmJSIiIiIiIv8dzZs3p1mzZnh5eVG6dGlCQ0M5duwYJ0+e5NKlSxQuXJjq1atTqFAhqlevTnBwMPD0uGdnZ2fq169PwYIFqVixIt26dTP6wsLCWL58OTVq1MDT05OBAwdSvXp1wsLCsLKywtHRETMzM6OSYVr/Y9/Dhw8ZPHgwwcHBODg4pPssLVu2JDg4mFq1auHi4kJgYCAzZ85MlVwXGxvL3r17adWqFQBt27YlLCyM5ORkAPz8/HB1dTU5pjs8PBw3Nzfq1atnMtfgwYOxs7MzuXbs2GEypmrVqtjZ2ZEjRw4mTZpEuXLlUs3zMiEhIbRu3RoLCwuKFy+Oh4cHy5cvz/D9aencuTPh4eEkJyezYsUKPD09KV26dIbv37JlC6dPn2bBggWUKlWKmjVrMnbs2Jfe06ZNG3bt2mVUM01KSiIyMpI2bdpkeN3n93v69OlGPPfv38fPzw94+k5fVil03LhxODo6Gpebm1uGYxAREREREREREREREUmRoQTMb775hjVr1vDhhx+SnJxMt27d6NevX5qXiIiIiIiI/HfExsYSHByMh4cHDg4ORoXLS5cu0bFjR2JiYihatCh9+/Zl06ZNxn0tW7bkwYMHeHh40K1bN1avXs2TJ08AOHbsGImJiRQpUsQkWS46Oto43jw9CQkJBAUFkZycnOrY6hexsLAgLCyMX3/9lQkTJpA/f37Gjh2Lr68v165dM8aFhobi5+dHnjx5AGjUqBFxcXH8+OOPxjwdOnQwEhSTkpKYP38+nTp1wtzc9D+jP/roI2JiYkyu8uXLm4xZunQpR44cYeXKlXh5eREeHk62bNky9Ey3b99m1apVtG3b1mhLL7kwIxo3bkx8fDzbt28nNDQ0U9UvAU6dOoWbmxuurq5GW5UqVV56T+nSpfHx8TGqYEZHR3Pz5k1atmyZ4XWf3+/27dsDT99pq1atjCPUg4OD2bVr1ws/bx9//DFxcXHG9exx7CIiIiIiIiIiIiIiIhllmdGB/v7+ABw6dIh+/fphb2//yoISERERERGRf0ZAQACFChVi7ty5uLq6kpSURPHixXn8+DFly5blwoUL/PDDD2zZsoWgoCDq16/PihUrcHNz48yZM2zZsoXNmzfTs2dPJk6cSHR0NPHx8VhYWHDo0CEsLCxM1kur0uXzUpIvf/nlF3788ccMVb98Vv78+WnXrh3t2rVj1KhRFClShK+//poRI0aQmJjI/PnzuX79upGsB5CYmEhoaKhRmbJz586MGzeOH3/8kaSkJC5fvkynTp1SrZUnTx68vLxeGo+bmxuFCxemcOHCPHnyhMDAQI4fP461tXW6z7J48WIePnxIpUqVjLaUpNCzZ89SpEgRY3/i4uJS3X/79m0cHR1TtVtaWtKuXTuGDRvGvn37WL16dbqxZIU2bdqwePFihgwZwuLFi/H39yd37twZvj+t/b516xarV68mISHBJFk35Z2OGTMm1TzW1tYZ2n8REREREREREREREZGXyVAFzGeFhYUp+VJEREREROR/wB9//MGZM2cYOnQo9erVw8fHhz///NNkjIODA61atWLu3LksXbqUlStXcuvWLQBsbGwICAhg+vTpbNu2jT179nDs2DHKlClDYmIiN2/exMvLy+RydnYGwMrKisTExFQxpSRfxsbGsmXLlkwl56UlV65cuLi4cO/ePQDWr1/P3bt3OXLkiEklxSVLlrBq1Spu374NgKenJ7Vq1SI0NJSwsDDq169PoUKF/lYsAC1atMDS0pJZs2ZlaHxISAgffvihSaxHjx6lRo0ahIaGAuDk5ESePHk4dOiQyb137tzh3LlzFClSJM25O3fuTHR0NE2aNCFXrlyZeg4fHx8uX75sUll079696d737rvvcvz4cQ4dOsSKFSsydfz4i0RERFCgQAGOHj1qsk+TJ08mPDw8zc+ZiIiIiIiIiIiIiIhIVshwBUwRERERERH535IrVy5y587NN998g4uLC5cuXWLIkCFG/5QpU3BxcaFMmTKYm5uzfPlynJ2dyZkzp5HYVqlSJWxtbVm0aBE2NjYUKlSI3Llz06ZNG9q3b8/kyZMpU6YMv/32G1FRUZQsWZLGjRvj7u5OfHw8UVFRlCpVCltbW7Jly0aLFi04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98q4ceNUr169v22+EydOyGAwKCUl5W+bs6RcvXpVXl5eKlu2rLKzs/Pdz3v/DQaDXF1d9cADD2jlypXm+1euXNHIkSPl5+enUqVKycfHR61atdJHH31k7vPn76Gzs7MqVaqkjh07avXq1eY+CQkJRX5XDQaDTpw4oXHjxpk/29vbq0qVKnrhhReUkZFx22tLTEzMdy8kJEQGg0EJCQnm71NR144dO2zdequkp6crIiLiro333XffqUWLFipVqpSqVKmiqVOnWv3sW2+9pYSEhLsWCwAAAAAAAAAAwO0gARMAAAD/avPnz1dYWJhMJpNWrVql1NRUzZs3T5mZmZoxY4ZNY23fvl1RUVHq3LmzvvrqKyUnJ+v1119XTk6OJGn16tVKT09Xenq6vvrqK0nStm3bzG1/TgArSqlSpTR8+PAi+2RkZKhx48batm2b5s2bp6NHjyoxMVFHjx5Vo0aN9NNPP9m0NuDvsGrVKoWEhKhWrVqFVlqcMGGC0tPT9c0336hRo0aKiorSrl27JEl9+vTR6tWr9c477+iHH37Qpk2b1KVLF50/f95ijOeff17p6ek6duyYVq1apeDgYEVHR+uFF16QJEVFRZm/l+np6WrSpIn5mbyrSpUqkm4lR6anpystLU2LFy/Wpk2b1Ldv39taW5UqVbR48WKLtj179ujs2bNydXWVJDVt2tQijsjISLVr186irWnTplbvuS1MJpOcnZ3vyliXLl3So48+qmrVqik5OVnTpk3TuHHjtGDBAque9/DwKDQxHgAAAAAAAAAA4O9CAiYAAABK3KZNm9S8eXN5enrK29tbjz32mI4dOybp/1f/S0xMVNOmTVWqVCmFhoYqKSnJ/PyFCxcUExMjHx8fGY1G1axZM18SU0FOnTqlAQMGaMCAAYqPj1fr1q3l6+urli1batGiRRozZoxN6/j444/VrFkzDR06VIGBgQoICNCTTz6pOXPmSJK8vLxkMplkMpnk4+MjSfL29ja3eXl5WTXPCy+8oD179mjjxo2F9nn11Vd15swZbdu2TREREapatapatmypzZs3y9HRUS+//LJVc12+fFk9evSQm5ubKlSoUGBS6n//+181bNhQpUuXlslk0tNPP61z585JuvX7a9OmjSSpTJkyMhgM6tmzpyTpxo0bmjx5sqpXry6j0ai6devqww8/tCquvCqAmzdvVv369WU0GvXwww/r3Llz+uSTTxQUFCR3d3c9/fTTunLlivm57OxsDRgwQOXKlVOpUqXUvHlz7du3L9+427dvV8OGDeXi4qKmTZvq8OHDkm5VRhw/fry+/fZbc7XBP1fh++2339SpUye5uLioZs2aWrdunfne7b6n1atXlyTVr1/folLqjRs3NGHCBFWuXFnOzs6qV6+eNm3aZNX+5X2vVq9erTZt2sjFxUV169bV7t27LfrlJQ06OzvL19fX4vc/e/ZshYaGmj+vXbtWBoNB8+bNM7eFhYVp1KhRVsUkSXFxcerevbu6d++uuLi4AvvkvWcBAQGaM2eOjEajPv74Y0nSunXr9Morr6h9+/by9fVVgwYN1L9/f/Xq1ctiDBcXF5lMJlWuXFmNGzfWG2+8ofnz52vhwoXatm2bjEaj+XtpMpnk5ORkfibvsre3lyQ5ODjIZDKpUqVKCgsLU9euXbV169bbWltMTIySkpL0888/m9vi4+MVExMjBwcHSZKTk5NFHEajUc7OzvniLUpeFdf4+HhVrVpVbm5ueumll3T9+nVNnTpVJpNJ5cqV0+uvv27x3J8r/lr7DhVm2bJlunbtmuLj4xUSEqLo6GgNGDBAb775plXP//UI8tatW2vAgAEaNmyY+W/tuHHjrBoLAAAAAAAAAADgdpGACQAAgBJ3+fJlDRo0SF9//bW2b98uOzs7derUSTdu3DD3GTp0qAYPHqxvvvlGTZo0UceOHc1V7UaPHq3U1FR98sknOnTokObOnauyZcsWO+/KlSt17do1DRs2rMD7tlZXM5lMOnjwoL7//nubnrNV9erV1adPH40cOdJij/LcuHFDiYmJiomJkclksrhnNBr10ksvafPmzQUek/xXQ4cOVVJSkj766CNt2bJFO3bs0P79+y365OTkaOLEifr222+1du1anThxwpxkWaVKFa1atUqSdPjwYaWnp+utt96SJE2ePFlLly7VvHnzdPDgQcXGxqp79+4WybXFGTdunGbPnq1du3bp559/VmRkpGbNmqXly5drw4YN2rJli9555x1z/2HDhmnVqlVasmSJ9u/fL39/f4WHh+fbi1dffVUzZszQ119/LQcHB3MCX1RUlAYPHmyuepienq6oqCjzc+PHj1dkZKS+++47tW/fXjExMeaxb/c9/Wu11LxKqW+99ZZmzJih6dOn67vvvlN4eLgef/xxHTlyxOr9e/XVVzVkyBClpKQoICBA3bp1U25uriQpOTlZkZGRio6O1oEDBzRu3DiNHj3anHDaqlUrpaam6tdff5UkJSUlqWzZsubjr3NycrR7925zwmhxjh07pt27dysyMlKRkZH64osvdPLkySKfcXBwkKOjo65duybp1ndw48aN+v33363egzzPPvusypQpY3Ul2oKcOHFCmzdvzpcAae3aypcvr/DwcC1ZskTSrSPVV6xYkS+B9G44duyYPvnkE23atEnvv/++4uLi1KFDB506dUpJSUl64403NGrUKO3du7fIcYp6h4qye/dutWzZ0mKvwsPDdfjwYV24cOG21rRkyRK5urpq7969mjp1qiZMmFBgMqx0Kxn70qVLFhcAAAAAAAAAAICtSMAEAABAievcubOeeuop+fv7m6uyHThwQKmpqeY+/fr1U+fOnRUUFKS5c+fKw8PDXEUuLS1N9evXV8OGDeXr66uwsDB17Nix2HmPHDkid3d3VahQ4a6so3///mrUqJFq164tX19fRUdHKz4+XtnZ2Xdl/D8bNWqUjh8/rmXLluW79+uvv+rixYsKCgoq8NmgoCDdvHlTR48eLXKOrKwsxcXFafr06Wrbtq1q166tJUuW5Euu6tWrlyIiIlSjRg01btxYb7/9tj755BNlZWXJ3t7eXNmzXLlyMplM8vDwUHZ2tiZNmqT4+HiFh4erRo0a6tmzp7p376758+dbvQ+vvfaamjVrpvr166t3795KSkrS3LlzVb9+fbVo0UJdunTRZ599JulWou/cuXM1bdo0RUREKDg4WAsXLpTRaMxXkfD1119Xq1atFBwcrBEjRmjXrl36448/ZDQa5ebmZq56mFeBME/Pnj3VrVs3+fv7a9KkScrKyjInUN7ue/rXaql5+zl9+nQNHz5c0dHRCgwM1BtvvKF69epp1qxZVu/fkCFD1KFDBwUEBGj8+PE6efKk+b1488031bZtW40ePVoBAQHq2bOn+vXrp2nTpkmSQkND5eXlZU6Y3bFjhwYPHmz+/NVXXyknJ8fq47Dj4+MVERGhMmXKyMvLS+Hh4UVWCL127ZomT56szMxMPfzww5KkBQsWaNeuXfL29lajRo0UGxurnTt3WjW/nZ2dAgICdOLECav65zlw4IDc3NxkNBpVvXp1HTx4UMOHD7/ttfXq1UsJ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X7U4orhq1apycnLSO++8oz59+uj777/Pd9xztWrVZDAYtH79erVv315Go1GlS5fWkCFDFBsbqxs3bqh58+bKzMzUzp075e7urmefffbubdL/4+rqqr59+2ro0KHy8vJS1apVNXXqVF25ckW9e/e2ehxfX18dP35cKSkpqly5skqXLi1nZ+din7vd97RcuXIyGo3atGmTKleurFKlSsnDw0NDhw7V2LFj5efnp3r16mnx4sVKSUnRsmXLrF5LUQYPHqxGjRpp4sSJioqK0u7duzV79myLiqt16tRRmTJltHz5cq1fv17SrQTMIUOGyGAw5DvCvCC//vqrPv74Y61bt06hoaEW93r06KFOnTopIyOj2IThvLm7deumhg0bytvbW6mpqXrllVfUpk0biwqHV65c0dmzZ5Wbm6tTp05pzZo1mjlzpvr27as2bdpYu0UFatKkierUqaNJkyZp7Nixt7W2oKAg/fbbb1Yd3/6/6umnn9b48ePVu3dvDR8+XN9//73eeustzZw5s6RDAwAAAAAAAAAAsBoVMAEAAFCi7OzslJiYqOTkZIWGhio2NlbTpk3L12/KlCmaMmWK6tatqy+//FLr1q1T2bJlJd2qEDhy5EjVqVNHLVu2lL29vRITE62a/6WXXtKWLVt0+vRpderUSbVq1dJzzz0nd3d3i+OhV6xYoVatWunFF19USEiIBgwYoCeeeEKLFi0y92nVqpV++ukn9ejRQ7Vq1VJERITOnj2rLVu2KDAw8A53qmCOjo6aOHFivup+3t7e2rNnj9q0aaMXX3xRfn5+ioyMlJ+fn/bt26caNWpYNf60adPUokULdezYUWFhYWrevLkaNGhgvu/j46OEhAStXLlSwcHBmjJliqZPn24xRqVKlTR+/HiNGDFC5cuXV79+/SRJEydO1OjRozV58mQFBQWpXbt22rBhg81HQNtiypQp6ty5s5555hk98MADOnr0qDZv3mxTxb3OnTurXbt2atOmjXx8fPT+++9b9dztvqcODg56++23NX/+fFWsWFFPPPGEJGnAgAEaNGiQBg8erNq1a2vTpk1at26datasafVaivLAAw/ogw8+UGJiokJDQzVmzBhNmDBBPXv2NPcxGAxq0aKFDAaDmjdvLulWUqa7u7saNmwoV1fXYudZunSpXF1d1bZt23z32rZtK6PRqPfee8+qmMPDw7VkyRI9+uijCgoKUv/+/RUeHq4PPvjAot/ChQtVoUIF+fn56amnnlJqaqpWrFhhkVx6J2JjY7Vo0SK9++67t702b29vGY3GuxLP/cjDw0NbtmzR8ePH1aBBAw0ePFhjxozRCy+8UNKhAQAAAAAAAAAAWM1w8+bNmyUdBAAAAFCYEydOqHr16vrmm29Ur169kg4HAPAPdOnSJXl4eKhu/3myd/7nJr4CAP5eydN6lHQIAAAAAAAAuA15/26QmZlpccpaQaiACQAAAAAAAAAAAAAAAAAAYCMSMAEAAPCPNWnSJLm5uRV4RURElHR4+SxbtqzQeENCQu76fGlpaYXO5+bmprS0tLs+p7X69OlTaFx9+vQpsbjuhXvxnt5v735ISEih8Sxbtuxvj+ef7n7Y74iIiEJjmDRpUrHPF/W36YsvvvgbVgAAAAAAAAAAAFA8jiAHAADAP1ZGRoYyMjIKvGc0GlWpUqW/OaKi/f777/rll18KvOfo6Khq1ard1flyc3N14sSJQu/7+vrKwcHhrs5prXPnzunSpUsF3nN3d1e5cuX+5ojunXvxnt5v7/7JkyeVk5NT4L3y5curdOnSf2s8/3T3w36fPn1aV69eLfCel5eXvLy8inz+6NGjhd6rVKmSjMa7e0w4R5ADAO4FjiAHAAAAAAD432TLEeQkYAIAAAAAgH81EjABAPcCCZgAAAAAAAD/m2xJwOQIcgAAAAAAAAAAAAAAAAAAABuVzHmCAAAAAAAA95nPX+tW7H/JCgAAAAAAAAAAkIcKmAAAAAAAAAAAAAAAAAAAADYiARMAAAAAAAAAAAAAAAAAAMBGJGACAAAAAAAAAAAAAAAAAADYiARMAAAAAAAAAAAAAAAAAAAAG5GACQAAAAAAAAAAAAAAAAAAYCOHkg4AAAAAAADgftBy1PuydzaWdBgAgP8RydN6lHQIAAAAAAAAKGFUwAQAAAAAAAAAAAAAAAAAALARCZgAAAAAAAAAAAAAAAAAAAA2IgETAAAAAAAAAAAAAAAAAADARiRgAgAAAAAAAAAAAAAAAAAA2IgETAAAAAAAAAAAAAAAAAAAABuRgAkAAAAAAAAAAAAAAAAAAGAjEjABAAAAAAAAAAAAAAAAAABsRAImAAAAAOBvlZCQIE9PT4u2nJwcDR8+XLVr15arq6sqVqyoHj166MyZMzaP/+KLL8re3l4rV67Md+/KlSsaOXKk/Pz8VKpUKfn4+KhVq1b66KOPdOLECRkMhiKvhISEYudfuHCh6tatKzc3N3l6eqp+/fqaPHlygX1r1aolZ2dnnT171tzWsWNHtWvXrsD+X3zxhQwGg7777rsi492zZ4+kW3ud12ZnZ6cKFSooKipKaWlpVuzkLa1bty5wjtzcXHOfova8KOPGjbMY08PDQy1atFBSUlKB/SdPnix7e3tNmzYt372C3isAAAAAAAAAAIB7iQRMAAAAAECJu3Llivbv36/Ro0dr//79Wr16tQ4fPqzHH3/c5nESExM1bNgwxcfH57vfp08frV69Wu+8845++OEHbdq0SV26dNH58+dVpUoVpaenm6/BgwcrJCTEoi0qKqrI+ePj4zVw4EANGDBAKSkp2rlzp4YNG6asrKx8fb/88ktdvXpVXbp00ZIlS8ztvXv31tatW3Xq1Kl8zyxevFgNGzZUnTp1zG3btm2ziDE9PV0NGjQw33d3d1d6erpOnz6tVatW6fDhw+ratatV+5nn+eefzzeHg4ODpOL3vDh/3uPdu3erZs2aeuyxx5SZmZmvb3x8/G3PAwAAAAAAAAAAcLeRgAkAAAAA/1KbNm1S8+bN5enpKW9vbz322GM6duyYJOnatWvq16+fKlSooFKlSqlatWrmKo43b97UuHHjVLVqVTk7O6tixYoaMGCAedzs7GwNGTJElSpVkqurqx566CHt2LFDkrRjxw795z//UWZmprnq4bhx4+Th4aGtW7cqMjJSgYGBaty4sWbPnq3k5GSbqjWuXLlSwcHBGjFihD7//HP9/PPPFvfXrVunV155Re3bt5evr68aNGig/v37q1evXrK3t5fJZDJfbm5ucnBwsGgzGo1Fzr9u3TpFRkaqd+/e8vf3V0hIiLp166bXX389X9+4uDg9/fTTeuaZZywSCh977DH5+Pjkq7aZlZWllStXqnfv3hbt3t7eFjGaTCY5Ojqa7xsMBplMJlWoUEFNmzZV79699dVXX+nSpUvWbqtcXFzyzZGnuD0vzp/3ODg4WBMmTFBWVpZ+/PFHi35JSUm6evWqJkyYoEuXLmnXrl02zQMAAAAAAAAAAHC3kYAJAAAAAP9Sly9f1qBBg/T1119r+/btsrOzU6dOnXTjxg29/fbbWrdunT744AMdPnxYy5Ytk6+vryRp1apVmjlzpubPn68jR45o7dq1ql27tnncfv36affu3UpMTNR3332nrl27ql27djpy5IiaNm2qWbNmmasypqena8iQIQXGl5ekacux0nFxcerevbs8PDwUERGRL4nRZDJp48aN+v33323dLquYTCbt2bNHJ0+eLLLf77//rpUrV6p79+565JFHlJmZqS+++ELSrYTEHj16KCEhQTdv3jQ/s3LlSl2/fl3dunW77fjOnTunNWvWyN7eXvb29rc9zp8Vt+e2yM7O1uLFi+Xp6anAwMB883Tr1k2Ojo7q1q2b4uLi7jByAAAAAAAAAACAO0MCJgAAAAD8S3Xu3FlPPfWU/P39Va9ePcXHx+vAgQNKTU1VWlqaatasqebNm6tatWpq3ry5OfEvLS1NJpNJYWFhqlq1qh588EE9//zz5nuLFy/WypUr1aJFC/n5+WnIkCFq3ry5Fi9eLCcnJ3l4eJirMuZVmvyrP/74Q8OHD1e3bt3k7u5u1XqOHDmiPXv2mI8J7969uxYvXmyRxLhgwQLt2rVL3t7eatSokWJjY7Vz58473UqzsWPHytPTU76+vgoMDFTPnj31wQcf6MaNGxb9EhMTVbNmTYWEhMje3l7R0dEWCYW9evXSsWPHlJSUZG5bvHixOnfuLA8PD4uxmjZtKjc3N4vrzzIzM+Xm5iZXV1eVL19en332mV5++WW5urpava53333XYvzBgwdLsm7Pi3PgwAHzuEajUdOnT9f7779v8Xu/dOmSPvzwQ3Xv3t08zwcffFDg0e7WyM7O1qVLlywuAAAAAAAAAAAAW5GACQAAAAD/UkeOHFG3bt1Uo0YNubu7mytcpqWlqWfPnkpJSVFgYKAGDBigLVu2mJ/r2rWrrl69qho1auj555/XmjVrlJubK+lWMt3169cVEBBgkbCXlJRkPt68ODk5OYqMjNTNmzc1d+5cq9cTHx+v8PBwlS1bVpLUvn17ZWZm6tNPPzX3admypX766Sdt375dXbp00cGDB9WiRQtNnDjR6nmKUqFCBe3evVsHDhzQ//k//0e5ubl69tln1a5dO4skzPj4eHMyoXQroXDlypXmypy1atVS06ZNzUeTHz16VF988UW+48clacWKFUpJSbG4/qx06dJKSUnR119/rRkzZuiBBx4o8Ej0osTExFiMP3LkSPM6itvz4gQGBprHTU5OVt++fdW1a1d9/fXX5j7vv/++/Pz8VLduXUlSvXr1VK1aNa1YscKmdeSZPHmyPDw8zFeVKlVuaxwAAAAAAAAAAPDvRgImAAAAAPxLdezYURkZGVq4cKH27t2rvXv3SpKuXbumBx54QMePH9fEiRN19epVRUZGqkuXLpKkKlWq6PDhw3r33XdlNBr10ksvqWXLlsrJyVFWVpbs7e2VnJxskbB36NAhvfXWW8XGlJd8efLkSW3dutXq6pfXr1/XkiVLtGHDBjk4OMjBwUEuLi7KyMgwJzHmcXR0VIsWLTR8+HBt2bJFEyZM0MSJE3Xt2jUbd7BwoaGheumll/Tee+9p69at2rp1q7maZWpqqvbs2aNhw4aZY23cuLGuXLmixMRE8xi9e/fWqlWr9Pvvv2vx4sXy8/NTq1at8s1VpUoV+fv7W1x/ZmdnJ39/fwUFBWnQoEFq3Lix+vbta9N6PDw8LMYvW7asTXteFCcnJ/O49evX15QpU1SpUiXNmjXL3CcuLk4HDx40z+Pg4KDU1FSb5vmzkSNHKjMz03z9/PPPtzUOAAAAAAAAAAD4d3Mo6QAAAAAAAH+/8+fP6/Dhw1q4cKFatGghSfryyy8t+ri7uysqKkpRUVHq0qWL2rVrp4yMDHl5ecloNKpjx47q2LGjXn75ZdWqVUsHDhxQ/fr1df36dZ07d8487l85OTnp+vXr+drzki+PHDmizz77TN7e3lavZ+PGjfr999/1zTffyN7e3tz+/fff6z//+Y8uXrwoT0/PAp8NDg5Wbm6u/vjjDzk5OVk9p7WCg4MlSZcvX5Z0K5mwZcuWmjNnjkW/xYsXKy4uznyce2RkpP7P//k/Wr58uZYuXaq+ffvKYDDccTwjRoyQn5+fYmNj9cADD9z2OHey58Wxt7fX1atXJd2qqvr1119rx44d8vLyMvfJyMhQ69at9cMPP6hWrVo2je/s7CxnZ+fbig0AAAAAAAAAACAPCZgAAAAA8C9UpkwZeXt7a8GCBapQoYLS0tI0YsQI8/0333xTFSpUUP369WVnZ6eVK1fKZDLJ09NTCQkJun79uh566CG5uLjovffek9FoVLVq1eTt7a2YmBj16NFDM2bMUP369fXrr79q+/btqlOnjjp06CBfX19lZWVp+/btqlu3rlxcXOTo6KguXbpo//79Wr9+va5fv66zZ89Kkry8vIpNjIyLi1OHDh3MR1TnCQ4OVmxsrJYtW6aXX35ZrVu3Vrdu3dSwYUN5e3srNTVVr7zyitq0aWN1tc2i9O3bVxUrVtTDDz+sypUrKz09Xa+99pp8fHzUpEkT5eTk6L///a8mTJig0NBQi2efe+45vfnmmzp48KBCQkLk5uamqKgojRw5UpcuXVLPnj0LnPP8+fPmvcrj6empUqVKFdi/SpUq6tSpk8aMGaP169ff9lqt3fPi5ObmmuP//ffftWLFCqWmpmr48OHmeR588EG1bNky37ONGjVSXFycpk2bJulWJdS/HsHu7OysoKCg21kiAAAAAAAAAABAkTiCHAAAAAD+hezs7JSYmKjk5GSFhoYqNjbWnMQmSaVLl9bUqVPVsGFDNWrUSCdOnNDGjRtlZ2cnT09PLVy4UM2aNVOdOnW0bds2ffzxx+aKlYsXL1aPHj00ePBgBQYG6sknn9S+fftUtWpVSVLTpk3Vp08fRUVFycfHR1OnTtXp06e1bt06nTp1SvXq1VOFChXM165du4pcyy+//KINGzaoc+fOBa6zU6dOiouLkySFh4dryZIlevTRRxUUFKT+/fsrPDxcH3zwwV3Z17CwMO3Zs0ddu3ZVQECAOnfurFKlSmn79u3y9vbWunXrdP78eXXq1Cnfs0FBQQoKCjLHKt06hvzChQsKDw9XxYoVC53zz/tVoUIFrV27tsg4Y2NjtWHDBn311Ve3tU5b9rw4Bw8eNMddr149ffDBB5o7d6569Oiha9eu6b333itwHknq3Lmzli5dqpycHElSVlaW6tevb3F17NjxttYIAAAAAAAAAABQHMPNmzdvlnQQAAAAAAAAJeXSpUvy8PBQ3f7zZO9sLOlwAAD/I5Kn9SjpEAAAAAAAAHAP5P27QWZmZrEnqFEBEwAAAAAAAAAAAAAAAAAAwEYkYAIAAAAA7nuTJk2Sm5tbgVdERMTfFkdEREShcUyaNOlvi+Nu+eKLLwpdj5ub2x2PX9TYX3zxxV1YAQAAAAAAAAAAQMlxKOkAAAAAAAAoTp8+fRQZGVngPaPx7zsyetGiRbp69WqB97y8vP62OO6Whg0bKiUl5Z6NX9TYlSpVumfzAgAAAAAAAAAA/B1IwAQAAAAA3Pe8vLzuiwTHf1rSoNFolL+//z0b/16ODQAAAAAAAAAAUNI4ghwAAAAAAAAAAAAAAAAAAMBGJGACAAAAAAAAAAAAAAAAAADYiCPIAQAAAAAAJH3+Wje5u7uXdBgAAAAAAAAAAOB/BBUwAQAAAAAAAAAAAAAAAAAAbEQCJgAAAAAAAAAAAAAAAAAAgI1IwAQAAAAAAAAAAAAAAAAAALARCZgAAAAAAAAAAAAAAAAAAAA2IgETAAAAAAAAAAAAAAAAAADARg4lHQAAAAAAAMD9oOWo92XvbCzpMAAAf5PkaT1KOgQAAAAAAAD8j6MCJgAAAAAAAAAAAAAAAAAAgI1IwAQAAAAAAAAAAAAAAAAAALARCZgAAAAAAAAAAAAAAAAAAAA2IgETAAAAAAAAAAAAAAAAAADARiRgAgAAAAAAAAAAAAAAAAAA2IgETAAAAAAAAAAAAAAAAAAAABuRgAkAAACgWK1bt9bAgQNLOoz7jsFg0Nq1a0s6DOBfJyEhQZ6eniUdBgAAAAAAAAAA+JcjARMAAAD/Sp999pnat28vb29vubi4KDg4WIMHD9bp06clFZ3c89ekuzVr1qhx48by8PBQ6dKlFRISYk5WbN26tQwGQ6FX69ati43V19dXBoNBe/bssWgfOHBgvuczMjI0cOBAVatWTU5OTqpYsaJ69eqltLQ0a7fmrtixY4cMBoMuXrz4t857r4wbN0716tX72+Y7ceKEDAaDUlJS/rY5S8rVq1fl5eWlsmXLKjs7O9/9vPffYDDI1dVVDzzwgFauXGm+f+XKFY0cOVJ+fn4qVaqUfHx81KpVK3300UfmPn/+Hjo7O6tSpUrq2LGjVq9ebe6TkJBQ5HfVYDDoxIkTGjdunPmzvb29qlSpohdeeEEZGRm3vbbExMR890JCQmQwGJSQkGD+PhV17dixw9atL3EZGRmKiYmRu7u7PD091bt3b2VlZVn1bFRUlH788cd7HCEAAAAAAAAAAEDRSMAEAADAv878+fMVFhYmk8mkVatWKTU1VfPmzVNmZqZmzJhh01jbt29XVFSUOnfurK+++krJycl6/fXXlZOTI0lavXq10tPTlZ6erq+++kqStG3bNnPbnxPAilKqVCkNHz68yD4ZGRlq3Lixtm3bpnnz5uno0aNKTEzU0aNH1ahRI/300082rQ34O6xatUohISGqVatWodVEJ0yYoPT0dH3zzTdq1KiRoqKitGvXLklSnz59tHr1ar3zzjv64YcftGnTJnXp0kXnz5+3GOP5559Xenq6jh07plWrVik4OFjR0dF64YUXJN1K6Mv7Xqanp6tJkybmZ/KuKlWqSLqVHJmenq60tDQtXrxYmzZtUt++fW9rbVWqVNHixYst2vbs2aOzZ8/K1dVVktS0aVOLOCIjI9WuXTuLtqZNm1q95/eLmJgYHTx4UFu3btX69ev1+eefm38fxTEajSpXrtw9jhAAAAAAAAAAAKBoJGACAACgRGzatEnNmzeXp6envL299dhjj+nYsWOS/n/1v8TERDVt2lSlSpVSaGiokpKSzM9fuHBBMTEx8vHxkdFoVM2aNfMlMRXk1KlTGjBggAYMGKD4+Hi1bt1avr6+atmypRYtWqQxY8bYtI6PP/5YzZo109ChQxUYGKiAgAA9+eSTmjNnjiTJy8tLJpNJJpNJPj4+kiRvb29zm5eXl1XzvPDCC9qzZ482btxYaJ9XX31VZ86c0bZt2xQREaGqVauqZcuW2rx5sxwdHfXyyy9bNdfly5fVo0cPubm5qUKFCgUmpf73v/9Vw4YNVbp0aZlMJj399NM6d+6cpFu/vzZt2kiSypQpI4PBoJ49e0qSbty4ocmTJ6t69eoyGo2qW7euPvzwQ6viyqsCuHnzZtWvX19Go1EPP/ywzp07p08++URBQUFyd3fX008/rStXrpify87O1oABA1SuXDmVKlVKzZs31759+/KNu337djVs2FAuLi5q2rSpDh8+LOlWZcTx48fr22+/NVcbTEhIMD//22+/qVOnTnJxcVHNmjW1bt06873bfU+rV68uSapfv75FpdQbN25owoQJqly5spydnVWvXj1t2rTJqv3L+16tXr1abdq0kYuLi+rWravdu3db9MtLGnR2dpavr6/F73/27NkKDQ01f167dq0MBoPmzZtnbgsLC9OoUaOsikmS4uLi1L17d3Xv3l1xcXEF9sl7zwICAjRnzhwZjUZ9/PHHkqR169bplVdeUfv27eXr66sGDRqof//+6tWrl8UYLi4uMplMqly5sho3bqw33nhD8+fP18KFC7Vt2zYZjUbz99JkMsnJycn8TN5lb28vSXJwcJDJZFKlSpUUFhamrl27auvWrbe1tpiYGCUlJennn382t8XHxysmJkYODg6SJCcnJ4s4jEajnJ2d88VblG+//VZt2rRR6dKl5e7urgYNGujrr7+WVHCF11mzZsnX19f8uWfPnnryySc1adIklS9fXp6e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5cvFxmMrNzc3jR49Wq+//rp+//13c7udnZ0iIyO1fPnyfMf35iVshoeHm4+yLoyfn58cHR3NCbGSdOHCBf3444/mzz/88IPOnz+vKVOmqEWLFqpVq1a+RConJydJtxLc8gQHB8vZ2VlpaWny9/e3uO7V8b9+fn5ycnKyOJI6JydH+/btU3BwsNXjODk5WazFFrfznha0f+7u7qpYsWK+47V37txp01qKEhQUVOD4AQEBsre3lyS1atVKqampWrlypVq3bi3pVlLmtm3btHPnTnNbceLi4hQdHW2RjJuSkqLo6Oh8x8OXLVtW/v7+MplMVlWrDA4OVm5urv74448i+y1ZskQXLlxQ586drYq5MKNGjdL06dN15swZSbatLU+vXr2UlJSkJ554QmXKlLmjeAoTEBCg2NhYbdmyRU899ZT5SHQfHx+dPXvWIgnzr3/77rYmTZro4sWLSk5ONrd9+umnunHjhkUFXgAAAAAAAAAAgPuZQ0kHAAAAgH+fMmXKyNvbWwsWLFCFChWUlpamESNG5Os3Z84c1axZU0FBQZo5c6YuXLhgPpp3zJgxatCggUJCQpSdna3169dbJGcWpkqVKpo5c6b69eunS5cuqUePHvL19dWpU6e0dOlSubm5acaMGQoJCdGjjz6qXr16acaMGapRo4YOHz6sgQMHKioqSpUqVZJ0q6rclStX1L59e1WrVk0XL17U22+/rZycHD3yyCN3d+P+nxdeeEEzZ87U8uXLLRKVJk2apO3bt+uRRx7R1KlTFRoaquPHj2vUqFHKycnRnDlzih3bzc1NvXv31tChQ+Xt7a1y5crp1VdftTh2uGrVqnJyctI777yjPn366Pvvv8933HO1atVkMBi0fv16tW/fXkajUaVLl9aQIUMUGxurGzduqHnz5srMzNTOnTvl7u6uZ5999u5t0v/j6uqqvn37aujQofLy8lLVqlU1depUXblyRb1797Z6HF9fXx0/flwpKSmqXLmySpcuLWdn52Kfu933tFy5cjIajdq0aZMqV66sUqVKycPDQ0OHDtXYsWPl5+enevXqafHixUpJSdGyZcusXktRBg8erEaNGmnixImKiorS7t27NXv2bIuKq3Xq1FGZMmW0fPlyrV+/XtKtBMwhQ4bIYDDkO8K8IL/++qs+/vhjrVu3TqGhoRb3evTooU6dOikjI6PYhOG8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U+vWrTPfu933tHr16pKk+vXrW1RKvXHjhiZMmKDKlSvL2dlZ9erV06ZNm6zav7zv1erVq9WmTRu5uLiobt262r17t0W/vKRBZ2dn+fr6Wvz+Z8+erdDQUPPntWvXymAwaN68eea2sLAwjRo1yqqYJCkuLk7du3dX9+7dFRcXV2CfvPcsICBAc+bMkdFo1McffyxJWrdunV555RW1b99evr6+atCggfr3769evXpZjOHi4iKTyaTKlSurcePGeuONNzR//nwtXLhQ27Ztk9FoNH8vTSaTnJyczM/kXfb29pIkBwcHmUwmVapUSWFhYeratau2bt16W2uLiYlRUlKSfv75Z3NbfHy8YmJi5ODgIElycnKyiMNoNMrZ2TlfvEX59ttv1aZNG5UuXVru7u5q0KCBvv76a0kFV3idNWuWfH19zZ979uypJ598UpMmTVL58uXl6empCRMmKDc3V0OHDpWXl5cqV65s1fstSYcOHdKmTZu0aNEiPfTQQ2revLneeecdJSYm6syZM1aNUdS7KuWvVixJnp6e5u9vYd8zAAAAAAAAAACAe4EETAAAANw1ly9f1qBBg/T1119r+/btsrOzU6dOnXTjxg1zn6FDh2rw4MH65ptv1KRJE3Xs2NFc1W706NFKTU3VJ598okOHDmnu3LkqW7ZssfOuXLlS165d07Bhwwq8X9ix44UxmUw6ePCgvv/+e5ues1X16tXVp08fjRw50mKP8ty4cUOJiYmKiYmRyWSyuGc0GvXSSy9p8+bNBR6T/FdDhw5VUlKSPvroI23ZskU7duzQ/v37Lfrk5ORo4sSJ+vbbb7V27VqdOHHCnGRZpUoVrVq1SpJ0+PBhpaen66233pIkTZ48WUuXLtW8efN08OBBxcbGqnv37hbJtcUZN26cZs+erV27dunnn39WZGSkZs2apeXLl2vDhg3asmWL3nnnHXP/YcOGadWqVVqyZIn2798vf39/hYeH59uLV199VTNmzNDXX38tBwcHcwJfVFSUBg8ebK56mJ6erqioKPNz48ePV2RkpL777ju1b99eMTEx5rFv9z39a7XUvEqpb731lmbMmKHp06fru+++U3h4uB5//HEdOXLE6v179dVXNWTIEKWkpCggIEDdunVTbm6uJCk5OVmRkZGKjo7WgQMHNG7cOI0ePdqcsNaqVSulpqbq119/lSQlJSWpbNmy5uOvc3JytHv3bqsT2Y4dO6bdu3crMjJSkZGR+uKLL3Ty5Mkin3FwcJCjo6OuXbsm6dZ3cOPGjfr999+t3oM8zz77rMqUKWN1JdqCnDhxQps3b86XAGnt2sqXL6/w8HAtWbJE0q0j1VesWJEvgfROxcTEqHLlytq3b5+Sk5M1YsQIOTo62jTGp59+qjNnzujzzz/Xm2++qbFjx+qxxx5TmTJltHfvXvXp00cvvviiTp06VexYu3fvlqenpxo2bGhuCwsLk52dnfbu3Vvs88W9q9Yo7Hv2V9nZ2bp06ZLFBQAAAAAAAAAAYCsSMAEAAHDXdO7cWU899ZT8/f1Vr149xcfH68CBA0pNTTX36devnzp37qygoCDNnTtXHh4e5ipyaWlpql+/vho2bChfX1+FhYWpY8eOxc575MgRubu7q0KFCndlHf3791ejRo1Uu3Zt+fr6Kjo6WvHx8crOzr4r4//ZqFGjdPz4cS1btizfvV9//VUXL15UUFBQgc8GBQXp5s2bOnr0aJFzZGVlKS4uTtOnT1fbtm1Vu3ZtLVmyxJygl6dXr16KiIhQjRo11LhxY7399tv65JNPlJWVJXt7e3Nlz3LlyslkMsnDw0PZ2dmaNGmS4uPjFR4erho1aqhnz57q3r275s+fb/U+vPbaa2rWrJnq16+v3r17KykpSXPnzlX9+vXVokULdenSRZ999pmkW4m+c+fO1bRp0xQREaHg4GAtXLhQRqMxX0XC119/Xa1atVJwcLBGjBihXbt26Y8//pDRaJSbm5u56mFeBcI8PXv2VLdu3eTv769JkyYpKyvLnNh1u+/pX6ul5u3n9OnTNXz4cEVHRyswMFBvvPGG6tWrp1mzZlm9f0OGDFGHDh0UEBCg8ePH6+TJk+b34s0331Tbtm01evRoBQQEqGfPnurXr5+mTZsmSQoNDZWXl5c5YXbHjh0aPHiw+fNXX32lnJwcq4/Djo+PV0REhMqUKSMvLy+Fh4cXWUHx2rVrmjx5sjIzM/Xwww9LkhYsWKBdu3bJ29tbjRo1UmxsrHbu3GnV/HZ2dgoICNCJEyes6p/nwIEDcnNzk9FoVPXq1XXw4EENHz78ttfWq1cvJSQk6ObNm/rwww/l5+eXryLlnUpLS1NYWJhq1aqlmjVrqmvXrqpbt65NY3h5eentt99WYGCgevXqpcDAQF25ckWvvPKKatasqZEjR8rJyUlffvllsWOdPXtW5cqVs2hzcHCQl5eXzp49W+zzxb2r1ijse/ZXkydPloeHh/nKO4oeAAAAAAAAAADAFiRgAgAA4K45cuSIunXrpho1asjd3d181G1aWpq5T5MmTcw/Ozg4qGHDhjp06JAkqW/fvkpMTFS9evU0bNgw7dq1y6p5b968KYPBcNfW4erqqg0bNujo0aMaNWqU3NzcNHjwYD344IMWx2DfDT4+PhoyZIjGjBljrv73Vzdv3ryjOY4dO6Zr167poYceMrd5eXkpMDDQol9ycrI6duyoqlWrqnTp0mrVqpUky9/fXx09elRXrlzRI488Ijc3N/O1dOlS8/Hz1qhTp4755/Lly8vFxUU1atSwaMs7Dv3YsWPKyclRs2bNzPcdHR314IMPmt+lgsbNS9DNG8faeFxdXeXu7m5+7nbf04JcunRJZ86csViLJDVr1izfWqyN96/rPHToUIHjHzlyRNevX5fBYFDLli21Y8cOXbx4UampqXrppZeUnZ2tH374QUlJSWrUqJFcXFyKjeP69etasmSJunfvbm7r3r27EhIS8lV5HT58uNzc3OTi4qI33nhDU6ZMUYcOHSRJLVu21E8//aTt27erS5cuOnjwoFq0aKGJEydatR+38zchMDBQKSkp2rdvn4YPH67w8HD179//ttYmSR06dFBWVpY+//xzxcfH3/Xql5I0aNAgPffccwoLC9OUKVNs+s7lCQkJkZ3d//+/BsqXL6/atWubP9vb28vb29uq782dKu5dvZtGjhypzMxM8/Xn4+IBAAAAAAAAAACsRQImAAAA7pqOHTsqIyNDCxcu1N69e81HzhaWWPhXEREROnnypGJjY3XmzBm1bdtWQ4YMKfa5gIAAZWZmKj09vch+7u7uunz5cr5kqYsXL0qSPDw8LNr9/Pz03HPPadGiRdq/f79SU1O1YsUKq9Zii0GDBunq1at69913Ldp9fHzk6elZaCLeoUOHZDAY5O/vf8cxXL58WeHh4XJ3d9eyZcu0b98+rVmzRlLRv7+srCxJ0oYNG5SSkmK+UlNT9eGHH1o9/5+PTTYYDPmOUTYYDAUmudk6riSrxilq/tt9T++l211nntatW2vHjh364osvVL9+fbm7u5uTMpOSkszJuMXZvHmzTp8+raioKDk4OMjBwUHR0dE6efKktm/f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7NmzRZknL1y4ABMTE6xbt67U+6GiogIrKyu8e/dO7n0iIyPRvn17mQyZ7du3l8nUKaWlpYUxY8Zg8uTJePv2bWl1v0A1atSAm5sbJk+eLFf5bzmekJAQHD58GC1atECZMmVKs/tERERERERERERERETfhRkwiYiIiIiI6H/Ozp078erVK4SGhgqZLqVat26NyMhI9OrV67vqj4+PR/v27WFra4v8/Hzs2LEDu3fvRnR0tKjsixcv8PjxY9E6PT09vH37Fjt27MD27dvh5OQk2h4cHIxWrVrh5cuXBU7/3aNHD8ydOxdxcXGoWbPmNx+HPAYNGoRWrVph2LBhqFChQqHlnj179k3HY29vj+fPn0NDQ+OH9J+IiIiIiIiIiIiIiOhbMQMmERERERER/c+JjIyEj4+PTPAl8DkA8+zZs7h48eI31+/g4AANDQ2EhYWhatWqqFWrFv744w+sXLkSnTp1EpX18fGBsbGxaNm6dStWr14NTU1NeHt7y9Tv7e0NdXV1rF27tsD2lZWVMXHiRHz8+PGbj0Fefn5+sLCwKDYL5vccj4GBAdTV1Uulv0RERERERERERERERKVFkp+fn/+zO0FERERERERE9LO8efMGurq6cOm/FIqqDPQkIvovSp4Z/LO7QERERERERERE/xLS7w0yMjKgo6NTZFlmwCQiIiIiIiIiIiIiIiIiIiIiIiIiKiEGYBIRERERERGVUGxsLLS0tApcHB0df3b3ClRYf7W0tHD06NFSacPR0bHQNmJjY0ulDSIiIiIiIiIiIiIion8KpZ/dASIiIiIiIqJ/m+bNm6NmzZoFblNWVv6beyOflJSUQrdVqFChVNrYvXs3srOzC9xWvnz5UmmDiIiIiIiIiIiIiIjon4IBmEREREREREQlpK2tDW1t7Z/djRKxtrb+4W2YmZn98DaIiIiIiIiIiIiIiIj+KTgFORERERERERERERERERERERERERFRCTEDJhERERERERERgCOTgqCjo/Ozu0FERERERERERERERP8SzIBJRERERERERERERERERERERERERFRCDMAkIiIiIiIiIiIiIiIiIiIiIiIiIiohBmASEREREREREREREREREREREREREZUQAzCJiIiIiIiIiIiIiIiIiIiIiIiIiEqIAZhERERERERERERERERERERERERERCWk9LM7QERERERERET0T1B39Dooqqr/7G4QEVEpSZ4Z/LO7QERERERERERE/3HMgElEREREREREREREREREREREREREVEIMwCQiIiIiIiIiIiIiIiIiIiIiIiIiKiEGYBIRERERERERERERERERERERERERlRADMImIiIiIiIiIiIiIiIiIiIiIiIiISogBmEREREREREREREREREREREREREREJcQATCIiIiIiIiIiIiIiIiIiIiIiIiKiEmIAJhERERERERERERERERERERERERFRCTEAk4iIiIjoP6Z+/foYNGjQz+7GP45EIsHWrVt/djeIiIiIiIiIiIiIiIiI6D+CAZhERERE9I936NAh+Pv7w8DAABoaGnBwcEBYWBgePnwIAIiJiYGenl6B+34ddLdlyxbUqlULurq60NbWhqOjoxCsWL9+fUgkkkKX+vXrF9tXc3NzSCQSnDx5UrR+0KBBMvu/fPkSgwYNgpmZGVRUVGBiYoKQkBCkpaXJOzSlIjExERKJBK9fv/5b2/1Rxo8fj6pVq/5t7d29excSiQQpKSl/W5s/y4cPH6Cvr4+yZcsiKytLZrv0/JdIJNDU1ES1atWwYcMGYfv79+8xcuRIWFlZQU1NDYaGhqhXrx62bdsmlPnyOlRVVUWFChUQEBCAzZs3C2ViYmKKvFYlEgnu3r2L8ePHC68VFRVhamqKHj164OXLl998bPHx8TLbHB0dIZFIEBMTI1xPRS2JiYklHfp/jZcvX6JDhw7Q0dGBnp4eQkNDkZmZ+be1/790PRIRERERERERERER0c/HAEwiIiIi+kdbtmwZfHx8YGRkhE2bNuHKlStYunQpMjIyMHv27BLVdfDgQbRr1w6tW7fG6dOnkZycjMmTJyM7OxsAsHnzZqSnpyM9PR2nT58GABw4cEBY92UAWFHU1NQwfPjwIsu8fPkStWrVwoEDB7B06VLcvHkT8fHxuHnzJqpXr47bt2+X6NiI/g6bNm2Co6MjKleuXGg20QkTJiA9PR3nz59H9erV0a5dO5w4cQIA0KtXL2zevBkLFy7EtWvXkJCQgDZt2uDFixeiOrp374709HTcunULmzZtgoODA9q3b48ePXoAANq1aydcl+np6fDw8BD2kS6mpqYAPgdHpqenIy0tDdHR0UhISEDv3r2/6dhMTU0RHR0tWnfy5Ek8fvwYmpqaAABPT09R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d+/ehYWFBc6fP4+qVav+7O4QERGV2Js3b6CrqwuX/kuhqPrPCawlIqLvkzwz+Gd3gYiIiIiIiIiI/oWk3xtkZGSIZnErCDNgEhERERERERERERERERERERERERGVEAMwiYiIiOinmTJlCrS0tApcmjRp8rO7JyM2NrbQ/jo6OpZ6e2lpaYW2p6WlhbS0tFJvU169evUqtF+9evX6af36EX7EefpPO/cdHR0L7U9sbOzf3p//un/reH/vedukSZNC958yZcrfcARERERERERERERERESli1OQExEREdFP8/LlS7x8+bLAberq6qhQocLf3KOivX37Fk+ePClwm7KyMszMzEq1vZycHNy9e7fQ7ebm5lBSUirVNuX19OlTvHnzpsBtOjo6KFeu3N/cox/nR5yn/7Rz/969e8jOzi5wW/ny5aGtrf239ue/7t863t973j58+BAfPnwocJu+vj709fW/u4/filOQExH9N3EKciIiIiIiIiIi+hYlmYKcAZhERERERERE9D+NAZhERP9NDMAkIiIiIiIiIqJvUZIATE5BTkRERERERERERERERERERERERERUQj9nvkIiIiIiIiIion+YI5OCiv0lKxERERERERERERERkRQzYBIRERERERERERERERERERERERERlRADMImIiIiIiIiIiIiIiIiIiIiIiIiISogBmEREREREREREREREREREREREREREJcQATCIiIiIiIiIiIiIiIiIiIiIiIiKiEmIAJhERERERERERERERERERERERERFRCSn97A4QEREREREREf0T1B29Doqq6j+7G0REVAqSZwb/7C4QEREREREREdH/AGbAJCIiIiIiIiIiIiIiIiIiIiIiIiIqIQZgEhERERERERERERERERERERERERGVEAMwiYiIiIiIiIiIiIiIiIiIiIiIiIhKiAGYREREREREREREREREREREREREREQlxABMIiIiIiIiIiIiIiIiIiIiIiIiIqISYgAmEREREREREREREREREREREREREVEJMQDzf5y5uTnmzZv3s7vxt/gnHevdu3chkUiQkpJSZLn69etj0KBBf0ufiIjo2+Xn56NHjx7Q19eX6/5O/zwSiQRbt24FIP/n9N/h+PHjcHZ2hrKyMlq2bPlT+/LlGH2rmJgY6OnpFVlm/PjxqFq16ne18zN06dKl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l5J+b5CRkVHsbLD/qinI6b/p/fv3WLp0KXx9faGoqIh169bhwIED2L9//8/uGhEREREREREREREREREREREREVGB/lVTkP+TaGlpFbocPXq01Ntr0qRJoe1NmTKl1NsDgNjY2ELbdHR0LLV2vpxu0M3NDTt27MCmTZvg4+NTam38SFOmTCl0nKTT+36vo0ePFnnOUdH+jvfoZ/u7rtcf5Wfc4wryb73W0tLSiux3Wlra396nf8p7SkT/bn/3MzcRERERERERERERERERUUlwCvJvdPPmzUK3VahQAerqpTtl2cOHD/Hhw4cCt+nr60NfX79U2wOAt2/f4smTJwVuU1ZWhpmZWam3+W/08uVLvHz5ssBt6urqqFChwne38eHDBzx8+LDQ7dbW1t/dxn/Z3/Ee/Wz/9uv1Z9zjCvJvvdZycnJw9+7dQrebm5tDSenvTXr9T3lPiejf7e9+5iai/12cgpyI6L+HU5ATEREREREREdG3KskU5AzAJCIiIiIiIqL/aQzAJCL672EAJhERERERERERfauSBGByCnIiIiIiIiIiIiIiIiIiIiIiIiIiohJiACYRERERERERERERERERERERERERUQkp/ewOEBERERERERH9ExyZFFTsVCJERERERERERERERERSzIBJRERERERERERERERERERERERERFRCDMAkIiIiIiIiIiIiIiIiIiIiIiIiIiohBmASEREREREREREREREREREREREREZUQAzCJiIiIiIiIiIiIiIiIiIiIiIiIiEqIAZhERERERERERERERERERERERERERCWk9LM7QERERERERET0T1B39Dooqqr/7G4QEdF3SJ4Z/LO7QERERERERERE/0OYAZOIiIiIiIiIiIiIiIiIiIiIiIiIqIQYgElEREREREREREREREREREREREREVEIMwCQiIiIiIiIiIiIiIiIiIiIiIiIiKiEGYBIRERERERERERERERERERERERERlRADMImIiIiIiIiIiIiIiIiIiIiIiIiISogBmEREREREREREREREREREREREREREJcQATCIiIiIiIiIiIiIiIiIiIiIiIiKiEmIAJhEREREREZWKmJgY6OnpfdO+69atg6KiIvr27Vvg9hUrVsDFxQVaWlrQ09ODq6srpk6dCgAwNzeHRCIpdOnSpUux7UvLnjx5UrQ+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iIiIiIiIiIiIqPQxAJOIiIiIiIh+CHV1dVhbW//sbkBfXx/6+vo/uxs/zD9hjAuira0NbW3tn90NIiIiIiIiIiIiIiKiH4ZTkBMRERERERERERERERERERERERERlRADMImIiIiIiIiIiIiIiIiIiIiIiIiISohTkBMRERERERERATgyKQg6Ojo/uxtERERERERERERERPQvwQyYREREREREREREREREREREREREREQlxABMIiIiIiIiIiIiIiIiIiIiIiIiIqISYgAmEREREREREREREREREREREREREVEJMQCTiIiIiIiIiIiIiIiIiIiIiIiIiKiEGIBJRERERERERERERERERERERERERFRCSj+7A0RERERERERE/wR1R6+Doqr6z+4GERGVUPLM4J/dBSIiIiIiIiIi+h/FDJhERERERERERERERERERERERERERCXEAEwiIiIiIiIiIiIiIiIiIiIiIiIiohJiACYRERERERERERERERERERERERERUQkxAJOIiIiIiIiIiIiIiIiIiIiIiIiIqIQYgElEREREREREREREREREREREREREVEIMwCQiIiIiIiIiIiIiIiIiIiIiIiIiKiEGYBIRERERkQyJRIKtW7eWaJ+tW7fC2toaioqKGDRo0Hf3wdzcHPPmzfvuegqTmJgIiUSC169ff3dd9evXL/ExX7t2DbVq1YKamhqqVq363X0gKs6Pvqb+Se7evQuJRIKUlJSf3RUiIiIiIiIiIiIiIvoPYwAmEREREdH/sPHjxxcY/Jeeno4mTZqUqK6ePXuiTZs2uH//PiZOnFhKPfxxPD09kZ6eDl1d3e+ua/PmzSU+5nHjxkFTUxOpqak4ePDgd/dh/PjxkEgkkEgkUFRUhKmpKXr06IGXL1+KypmbmwvlvlymTZsmKrdp0yY0bNgQZcqUgbq6Ouzs7BASEoLz588LZWJiYoT9FRQUULFiRXTt2hVPnz4VynzZho6ODqpXr45t27bJ9P/Dhw8YN24cbG1toaqqirJly6Jt27a4fPmyUMbZ2Rm9evUq8PjXrFkDVVVVPH/+XCa4Vvra0dERubm5ov309PQQExMj1xgDwPnz59G2bVuUL18eampqsLGxQffu3XH9+nUA/xf4J120tbXh6OiIvn374saNG3K3QwXr0qULWrZs+bO7QURERERERERERERE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3zufz8/PL8n5li9f/s7ne9Ply5fJkiULK1asYNGiRVhY6N9nioiIiIiIiIiIiIiIpJX+hkVERERERP5xxYoV4/jx4+87jFRxd3dPNlZ3d/d/JI7kYsiWLds/EsN/szp16lCyZMlE29KnT//O59u8eTOxsbGJtmXJkuWdz/cmDw8PXr58+bfPIyIiIiIiIiIiIiIi8t9MCZgiIiIiIvKPs7GxwdPT832HkSoWFhb/ilj/DTH8N7O3t8fe3v4fmy9Xrlz/2FwiIiIiIiIiIiIiIiLy99AW5CIiIiIiIiIiIiIiIiIiIiIiIiIiaaQKmCIiIiIiIiIiwJ7RTXFwcHjfYYiIiIiIiIiIiIiIyH8IVcAUEREREREREREREREREREREREREUkjJWCKiIiIiIiIiIiIiIiIiIiIiIiIiKSREjBFRERERERERERERERERERERERERNJICZgiIiIiIiIiIiIiIiIiIiIiIiIiImmkBEwRERERERERERERERERERERERERkTRSAqaIiIiIiIiIiIiIiIiIiIiIiIiISBpZvO8ARERERERERET+DSoMWUk6K5v3HYaIiKTS0Qmt3ncIIiIiIiIiIiLyP04VMEVERERERERERERERERERERERERE0kgJmCIiIiIiIiIiIiIiIiIiIiIiIiIiaaQETBERERERERERERERERERERERERGRNFICpoiIiIiIiIiIiIiIiIiIiIiIiIhIGikBU0REREREREREREREREREREREREQkjZSAKSIiIiIiIiIiIiIiIiIiIiIiIiKSRkrAFBERERER+R/RunVr6tWr977D+K8XERGBmZkZd+/efd+hiIiIiIiIiIiIiIiIyN9ICZgiIiIiIiKSKh4eHkydOvV9h/G3CgwMpGfPnu87jHcmLCwMJyen9x3G327WrFl4eHhgbW1NyZIlOXTo0PsOSURERERERERERERE/gcoAVNEREREROS/wLNnz953CAC8ePGCuLi4NJ3zb4ld/jOtWrWK3r17M3z4cH788UcKFSpEUFAQN2/efN+hiYiIiIiIiIiIiIjIfzklYIqIiIiIiPzNAgMD6d69Oz179iRjxoxkyZKF+fPn8/DhQ9q0aYO9vT2enp589913xjmnT5+mZs2a2NnZkSVLFlq2bMmff/5pMma3bt3o2bMnmTJlIigoCIAzZ85Qu3ZtHBwcsLe3p3z58ly8eNEknokTJ5I1a1ZcXFzo2rUrsbGxqVrDr7/+Sq9evTAzM8PMzAz4vwqLGzZsIH/+/FhZWXH58uVkx4rfCn3MmDG4u7vj7e0NwG+//UajRo1wcnLC2dmZunXrcunSJZNzFy1ahJ+fH1ZWVmTNmpVu3boZbXfv3qVdu3a4urri4OBA5cqVOXHihNE+YsQIChcuzNKlS/Hw8MDR0ZEmTZrw4MEDI67du3czbdo0Y41vzp+YzZs3ky9fPmxsbKhUqVKCc27dukXTpk3Jli0btra2+Pv7s3LlSqN9yZIluLi48PTpU5Pz6tWrR8uWLQE4ceIElSpVwt7eHgcHB4oWLcqRI0eSjSsiIoI2bdpw7949Yz0jRowA4M6dO7Rq1YqMGTNia2tLzZo1OX/+fIprhf/7zrdu3Yqvry92dnbUqFGDa9euGX3i4uIICQkhe/bsWFlZUbhwYbZs2WK0f/TRRybfXc+ePTEzM+PcuXPAq6TcDBkysGPHjhTjmTx5Mu3bt6dNmzbkz5+fuXPnYmtry6JFi1K1HhERERERERERERERkbelBEwREREREZF/wOLFi8mUKROHDh2ie/fudO7cmYYNG1KmTBl+/PFHqlevTsuWLXn06BF3796lcuXKBAQEcOTIEbZs2cKNGzdo1KhRgjEtLS2JjIxk7ty5XLlyhQoVKmBlZcX333/P0aNH+eSTT3j+/Llxzq5du7h48SK7du1i8eLFhIWFERYWlmL869atI3v27ISEhHDt2jWTZLtHjx4xfvx4FixYwJkzZ8icOXOK4+3cuZPo6Gi2b9/Opk2biI2NJSgoCHt7e/bu3UtkZKSR2BdfIXPOnDl07dqVDh06cOrUKTZs2ICnp6cxZsOGDbl58ybfffcdR48epUiRIlSpUoXbt28bfS5evMj69evZtGkTmzZtYvfu3YwbNw6AadOmUbp0adq3b2+sMUeOHMmu47fffqNBgwYEBwdz/Phx2rVrx8CBA036PHnyhKJFi/Ltt99y+vRpOnToQMuWLY1tshs2bMiLFy/YsGGDcc7Nmzf59ttv+eSTTwBo3rw52bNn5/Dhwxw9epSBAweSPn36ZGMrU6YMU6dOxcHBwVhP3759gVfJpkeOHGHDhg0cOHCAly9fUqtWrVQl48Kr73zixIksXbqUPXv2cPnyZWPs+Gs5adIkJk6cyMmTJwkKCqJOnTpGkmfFihWJiIgw+u/evZtMmTIZxw4fPkxsbCxlypRJNo5nz55x9OhRqlatahwzNzenatWqHDhwIMnznj59yv37900+IiIiIiIiIiIiIiIiaWXxvgMQERERERH5X1CoUCGGDBkCwKBBgxg3bhyZMmWiffv2AAwbNow5c+Zw8uRJduzYQUBAAGPHjjXOX7RoETly5OCnn34iX758AHh5efHFF18YfT777DMcHR0JDw83kvPi+8bLmDEjM2fOJF26dPj4+PDBBx+wc+dOI46kODs7ky5dOuzt7XFzczNpi42NZfbs2RQqVCjV1yNDhgwsWLAAS0tLAJYtW0ZcXBwLFiwwqmuGhobi5OREREQE1atXZ/To0fTp04dPP/3UGKd48eIA7Nu3j0OHDnHz5k2srKyAV5U+169fz1dffUWHDh2AV5UZw8LCsLe3B6Bly5bs3LmTMWPG4OjoiKWlJba2tgnWmJQ5c+aQN29eJk2aBIC3tzenTp1i/PjxRp9s2bKZJCd2796drVu3snr1akqUKIGNjQ3NmjUjNDSUhg0bGtcjZ86cBAYGAnD58mX69euHj48P8Oq7T4mlpSWOjo6YmZmZrOf8+fNs2LCByMhII8Fx+fLl5MiRg/Xr1xsxJCc2Npa5c+eSN29eALp160ZISIjRPnHiRAYMGECTJk0AGD9+PLt27WLq1KnMmjWLwMBAPv30U/744w8sLCw4e/YsQ4cOJSIigk6dOhEREUHx4sWxtbVNNo4///yTFy9ekCVLFpPjWbJkMappJubzzz9n5MiRKa5TREREREREREREREQkOUrAFBERERER+QcULFjQ+DldunS4uLjg7+9vHItPILt58yYnTpxg165d2NnZJRjn4sWLRlJl0aJFTdqOHz9O+fLlk62M6OfnR7p06Yzfs2bNyqlTp95uUf+fpaWlyfpSw9/f30i+hFdbbF+4cMFIjIz35MkTLl68yM2bN7l69SpVqlRJdLwTJ04QExODi4uLyfHHjx+bbMHu4eFhMkfWrFm5efNmmmJ/XVRUFCVLljQ5Vrp0aZPfX7x4wdixY1m9ejVXrlzh2bNnPH361CS5sH379hQvXpwrV66QLVs2wsLCaN26tZGM2rt3b9q1a8fSpUupWrUqDRs2NJIf3yZmCwsLk7hdXFzw9vYmKioqVWPY2tqazP/6dbx//z5Xr16lbNmyJueULVvW2BK+QIECODs7s3v3biwtLQkICKB27drMmjULeFURMz759O8waNAgevfubfx+//79FKudioiIiIiIiIiIiIiIvEkJmCIiIiIiIv+AN5MizczMTI7FJ9rFxcURExNDcHCwSRXFeFmzZjV+zpAhg0mbjY3NW8URFxeX8gKSYWNjY8SfWm/GHhMTQ9GiRVm+fHmCvq6urpibmyc7XkxMDFmzZjXZ1jqek5OT8fPfsf6UTJgwgWnTpjF16lT8/f3JkCEDPXv2NLZWBwgICKBQoUIsWbKE6tWrc+bMGb799lujfcSIETRr1oxvv/2W7777juHDhxMeHk79+vX/1tiTkth1fPnyZarPNzMzo0KFCkRERGBlZUVgYCAFCxbk6dOnnD59mv3795tUDU1KpkyZSJcuHTdu3DA5fuPGjWSrmFpZWRmVUkVERERERERERERERN5W8n+DJSIiIiIiIv+4IkWKcObMGTw8PPD09DT5vJm4+LqCBQuyd+9eYmNj/5a4LC0tefHixd8ydpEiRTh//jyZM2dOsGZHR0fs7e3x8PBg586dSZ5//fp1LCwsEpyfKVOmVMeR1jX6+vpy6NAhk2M//PCDye+RkZHUrVuXFi1aUKhQIfLkycNPP/2UYKx27doRFhZGaGgoVatWTVCRMV++fPTq1Ytt27bRoEEDQkND32o9vr6+PH/+nIMHDxrHbt26RXR0NPnz509xzJQ4ODjg7u5OZGSkyfHIyEiT8StWrEhERAQREREEBgZibm5OhQoVmDBhAk+fPk1QQTMxlpaWFC1a1OS+iIuLY+fOnQkqkYqIiIiIiIiIiIiIiLxrSsAUERERERH5l+natSu3b9+madOmHD58mIsXL7J161batGmTbHJgt27duH//Pk2aNOHIkSOcP3+epUuXEh0d/U7i8vDwYM+ePVy5coU///zznYwZr3nz5mTKlIm6deuyd+9efvnlFyIiIujRowe///478KoK5KRJk5g+fTrnz5/nxx9/ZMaMGQBUrVqV0qVLU69ePbZt28alS5fYv38/gwcP5siRI2la48GDB7l06RJ//vlnitUxO3XqxPnz5+nXrx/R0dGsWLGCsLAwkz5eXl5s376d/fv3ExUVRceOHRNUbARo1qwZv//+O/Pnz+eTTz4xjj9+/Jhu3boRERHBr7/+SmRkJIcPH8bX1zdV64mJiWHnzp38+eefPHr0CC8vL+rWrUv79u3Zt28fJ06coEWLFmTLlo26deum7kKloF+/fowfP55Vq1YRHR3NwIEDOX78OJ9++qnRJzAwkLNnz3LmzBnKlStnHFu+fDnFihVLNtn4db1792b+/PksXryYqKgoOnfuzMOHD2nTps07WYuIiIiIiIiIiIiIiEhSlIApIiIiIiLyLxNfPfDFixdUr14df39/evbsiZOTU7Jbcbu4uPD9998TExNDxYoVKVq0KPPnz0+wXfTbCgkJ4dKlS+TNmxdXV9d3MmY8W1tb9uzZQ86cOWnQoAG+vr60bduWJ0+e4ODgAMDHH3/M1KlTmT17Nn5+ftSuXZvz588Dr7a03rx5MxUqVKBNmzbky5ePJk2a8Ouvv5IlS5ZUx9G3b1/SpUtH/vz5cXV15fLly8n2z5kzJ2vXrmX9+vUUKlSIuXPnMnbsWJM+Q4YMoUiRIgQFBREYGIibmxv16tVLMJajoyMffvghdnZ2Ju3p0qXj1q1btGrVinz58tGoUSNq1qzJyJEjU1xPmTJl6NSpE40bN8bV1ZUvvvgCgNDQUIoWLUrt2rUpXbo0L1++ZPPmze/sXunRowe9e/emT58++Pv7s2XLFjZs2ICXl5fRx9/fHycnJwoXLoydnR3wKgHzxYsXBAYGpnquxo0bM3HiRIYNG0bhwoU5fvw4W7ZsSdP3LiIiIiIiIiIiIiIi8jbMXr58+fJ9ByEiIiIiIiIiUKVKFfz8/Jg+ffr7DuV/yv3793F0dKRQ97mks7J53+GIiEgqHZ3Q6n2HICIiIiIiIiIi/4Xi/97g3r17RqGQpFj8QzGJiIiIiIiISBLu3LlDREQEERERzJ49+32HIyIiIiIiIiIiIiIiIqmgLchFRERERESEvXv3Ymdnl+QnLZIbZ+/evX/TCv4enTp1SnItnTp1emfzBAQE0Lp1a8aPH4+3t3eqz6tZs2aS8b25Ffr7HPNtXb58Odn7KaUt4kVERERERERERERERP5O2oJcREREREREePz4MVeuXEmy3dPTM9VjXbhwIcm2bNmyYWPzn7PF882bN7l//36ibQ4ODmTOnPkfjsjUlStXePz4caJtzs7OODs7/yvGfFvPnz/n0qVLSbZ7eHhgYfHXN/fQFuQiIv+ZtAW5iIiIiIiIiIj8HbQFuYiIiIiIiKSJjY1NmpIsk/Ouxvk3yJw583tPskxOtmzZ/iPGfFsWFhb/VfeTiIiIiIiIiIiIiIj8d9EW5CIiIiIiIiIiIiIiIiIiIiIiIiIiaaQKmCIiIiIiIiIiwJ7RTVPcSkRERERERERERERERCSeKmCKiIiIiIiIiIiIiIiIiIiIiIiIiKSREjBFRERERERERERERERERERERERERNJICZgiIiIiIiIiIiIiIiIiIiIiIiIiImmkBEwRERERERERERERERERERERERERkTRSAqaIiIiIiIiIiIiIiIiIiIiIiIiISBpZvO8ARERERERERET+DSoMWUk6K5v3HYaIiLzh6IRW7zsEERERERERERGRRKkCpoiIiIiIiIiIiIiIiIiIiIiIiIhIGikBU0REREREREREREREREREREREREQkjZSAKSIiIiIiIiIiIiIiIiIiIiIiIiKSRkrAFBERERERERERERERERERERERERFJIyVgioiIiIiIiIiIiIiIiIiIiIiIiIikkRIwRURERERERERERERERERERERERETSSAmYIiIiIiIiIiIiIiIiIiIiIiIiIiJppARMEREREZG34OHhwdSpU993GP8TwsLCcHJy+tvnuXTpEmZmZhw/fvxvn+t/TWBgID179vzb53kX98qjR4/48MMPcXBwwMzMjLt3776T2N6nt7m3R4wYQeHChf/xeUVERERERERERERERP6TKAFTRERE/qNdv36d7t27kydPHqysrMiRIwfBwcHs3LkTADMzM9avX5/gvNatW1OvXj3j919++YVmzZrh7u6OtbU12bNnp27dupw7d46wsDDMzMyS/Vy6dCnZOEeMGIGZmRmdOnUyOX78+PFEz1+8eDHFixfH1tYWe3t7KlasyKZNm97mEskb/qlkvn9SUvf5/5J9+/ZRtmxZXFxcsLGxwcfHhylTprzzeW7dukWNGjVwd3c33jndunXj/v37aRonqXfJhAkTjD4eHh4J2seNG/eul0RYWBgFCxbE2tqazJkz07VrV6MtOjqaSpUqkSVLFqytrcmTJw9DhgwhNjbW6BMbG0tISAh58+bF2tqaQoUKsWXLljTH0bp16wTrrVGjhtEeERGR5HU7fPjwX7sIr1m8eDF79+5l//79XLt2DUdHx1Sdl1hc4eHhifaNjIzEwsIi0QTHK1eu0KJFC+Ne9vf358iR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MUblypWZOXMmpUuX5sWLFwwYMCDRBKzkeHh4EBMTw86dOylUqBC2trbY2tom2d/b25saNWrQsWNH5syZg4WFBT179jSpoufp6UlsbCwzZswgODiYyMhIY8vg12XMmJEGDRrQr18/qlevbiQqAkyePJmsWbMSEBCAubk5a9aswc3NLcFW50mtaefOnZQtWxYrKysyZsxIv379aNSoEQEBAVStWpWNGzeybt06duzYkabrlZQuXbowdepUunfvTrdu3YiOjmb48OH07t3bSIjKmDEjBQsWZPny5cycOROAChUq0KhRI2JjY9NUATN9+vR0796d6dOnY2FhQbdu3ShVqhQlSpQAXr0PcubMiY+PD/CqSuvEiRPp0aOHEYuLiwtffvklWbNm5fLlywwcODDRuWbNmoWXlxe+vr5MmTKFO3fu8MknnwCwefNmbty4QfHixbGzs+PMmTP069ePsmXLGhUIvby8WLduHcHBwZiZmTF06NBEK4fev3+fNWvWMGnSpARtBw4c4ODBg1SqVAl7e3sOHDhAr169aNGiBRkzZgRgwIABlCpVim7dutGuXTsyZMjA2bNn2b59OzNnzsTDw4OPP/6YTz75hOnTp1OoUCF+/fVXbt68SaNGjciXLx9169bl008/5csvv8TBwYFBgwbh4+NDpUqVAFi+fDnp06fH398fKysrjhw5wqBBg2jcuLHx7B08eJArV65QuHBhrly5wogRI4iLi6N///4ma7p8+TK9e/emY8eO/Pjjj8yYMcNYe3yFww8//BA3NzcuXrxI//798fT0JCgoyGSc77//nl9++SXJqqEp3SvDhw+nSpUq5M2blyZNmvD8+XM2b96c5Ps+Ne/GjRs3cuPGDUqVKoW1tTXbt29n7Nix9O3bFwBzc3MKFChgck7mzJmxtrY2Od6rVy/KlCnD2LFjadSoEYcOHeLLL7/kyy+/BMDFxQUXF5cE63Vzc8Pb2xuAZs2aMXjwYNq3b8+gQYO4dOmSyZbx8Gqr78qVKxMUFETv3r25fv06AOnSpcPV1dXoZ21tzccff8zEiRO5f/8+PXr0oFGjRri5uQEwcuRIevTogaOjIzVq1ODp06ccOXKEO3fu0Lt3b2Oc5J6p1MQybNgwateuTc6cOfnoo48wNzfnxIkTnD59mtGjR/Pzzz+zatUqqlevjqurK7///jvjxo3DxsaGWrVqJfq9ioiIiIiIiIiIiIiIvAuqgCkiIiL/sfLkycOPP/5IpUqV6NOnDwUKFKBatWrs3LmTOXPmANC0aVMWLFjAokWLKFq0KDVq1OD69evs2bOHLFmyAJA9e3Y8PDwYOXIkJUuWpEiRIkybNo2RI0cyePDgvy3+vn37Ymdnl+D41KlTmT17NitXrqRAgQIUK1aMPXv2sH79erp37/63xePq6kpYWBhr1qwhf/78jBs3ziRp5+XLl7Ru3ZoSJUrQrVs3AIKCgujcuTMtWrQwtqNNztq1aylevDhNmzYlf/789O/f36jcWKRIEVavXk14eDgFChRg2LBhhISE0Lp1a+P8SZMmkSNHDsqXL0+zZs3o27dvssmTiSlTpgydOnWicePGuLq68sUXX6R4TmhoKO7u7lSsWJEGDRrQoUMHowohQKFChZg8eTLjx4+nQIECLF++nM8//zzRsdq2bcuzZ8+M5KN49vb2fPHFFxQrVozixYtz6dIlNm/enGR1t9dNmjSJ7du3kyNHDgICAgCoV68e06ZNY+LEifj5+TFv3jxCQ0PTVHUyOdmyZWPz5s0cOnSIQoUK0alTJ9q2bZtg6+CKFSvy4sULY15nZ2fy589vkjCWGra2tgwYMIBmzZpRtmxZ7OzsWLVqldEeFxfHoEGDKFy4MMWKFWPWrFmMHz+ekJAQ4FUCXHh4OEePHqVAgQL06tUrQQJ0vHHjxjFu3DgKFSrEvn372LBhA5kyZQJebV89f/58ypUrh6+vL7169aJOnTps2rTJOH/y5MlkzJiRMmXKEBwcTFBQEEWKFEkwT3h4OC9fvqRp06YJ2qysrAgPD6dixYr4+fkxZswYevXqZSTiwatKjrt37+ann36ifPnyBAQEMGzYMNzd3Y0+c+bM4aOPPqJLly74+PjQvn17k8q+S5YsoWTJknzwwQdUrFiR9OnTs2XLFiO50sLCgvHjx1OiRAkKFizIyJEj6datGwsWLDDGePLkCUOGDCF//vzUr1+fbNmysW/fvgTJw61ateLx48eUKFGCrl278umnn9KhQwfgVbLdyZMnqVOnDvny5aNt27YULVqUvXv3YmVlZTLOwoULKVOmjJFs+6aU7pXAwEDWrFnDhg0bKFy4MJUrV+bQoUOJjgUpvxvhVRLkrFmzKF26NIULF2bevHlMnjyZ4cOHJzluYooXL87XX39tvP9HjRrF1KlTad68earHsLOzY+PGjZw6dYqAgAAGDx7M+PHjTfp89dVX/PHHHyxbtoysWbMan+LFi5v08/T0pEGDBtSqVYvq1atTsGBBk6T4du3asWDBAkJDQ/H396dixYqEhYUlqICZ3DOVmliCgoLYtGkT27Zto3jx4pQqVYopU6YYlUGtra3Zu3cvtWrVwtPTk8aNG2Nvb8/+/ftN3tUiIiIiIiIiIiIiIiLvmtnL1/cMFBERERGRv9XSpUvp1asXV69exdLS8n2HIyIivKpI6+joSKHuc0lnZZPyCSIi8o86OqHV+w5BRERERERERET+h8T/vcG9e/dwcHBItq+2IBcRERER+Qc8evSIa9euMW7cODp27KjkSxERERERERERERERERGR/3DaglxERETkHbCzs0vys3fv3nc+X82aNZOcb+zYse98vtRYvnx5kjH5+fm9l5hSY+/evcl+f+/KF198gY+PD25ubgwaNCjV5/0d1/Xf9l39G+9nEREREREREREREREREZGUaAtyERERkXfgwoULSbZly5YNG5t3u53plStXePz4caJtzs7OODs7v9P5UuPBgwfcuHEj0bb06dOTK1eufzii1Hn8+DFXrlxJst3T0/MfjCahv+O6/tu+q3/j/Swi/1u0BbmIyL+btiAXEREREREREZF/krYgFxEREfmH/dNJetmyZftH50sNe3t77O3t33cYaWZjY/PekyyT83dc13/bd/VvvJ9FRERERERERERERERERFKiLchFRERERERERERERERERERERERERNJIFTBFRERERERERIA9o5umuJWIiIiIiIiIiIiIiIhIPFXAFBERERERERERERERERERERERERFJIyVgioiIiIiIiIiIiIiIiIiIiIiIiIikkRIwRURERERERERERERERERERERERETSSAmYIiIiIiIiIiIiIiIiIiIiIiIiIiJppARMEREREREREREREREREREREREREZE0snjfAYiIiIiIiIiI/BtUGLKSdFY27zsMEZH/SUcntHrfIYiIiIiIiIiIiKSZKmCKiIiIiIiIiIiIiIiIiIiIiIiIiKSREjBFRERERERERERERERERERERERERNJICZgiIiIiIiIiIiIiIiIiIiIiIiIiImmkBEwRERERERERERERERERERERERERkTRSAqaIiIiIiIiI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cPny5Xcyz8qVK8mVKxd3797liy++SPV5e/fuTTa+t/F3jPlXdOrUKclYXt8eXERERERERERERERERETkfdAW5CIiIiJJuHDhQpJt2bJlw8bm3W5ReuXKFR4/fpxom7OzM87Ozu90vtR48OABN27cSLQtffr05MqV6x+O6J/z/PlzLl26lGS7h4cHFhbvr6D848ePuXLlSpLtnp6e/4ox/4qbN29y//79RNscHBzInDnzPxqPiPz30hbkIiLvn7YgFxERERERERGRfwttQS4iIiLyDvzTyWbZsmX7R+dLDXt7e+zt7d93GO+FhYXFP34PpIWNjc07j+/vGPOvyJw5s5IsRURERERERERERERERORfS1uQi4iIiIiIiIiIiIiIiIiIiIiIiIikkRIwRURERERERERERERERERERERERETSSFuQi4iIiIiIiIgAe0Y3xcHB4X2HISIiIiIiIiIiIiIi/yFUAVNEREREREREREREREREREREREREJI2UgCkiIiIiIiIiIiIiIiIiIiIiIiIikkZKwBQRERERERERERERERERERERERERSSMlYIqIiIiIiIiIiIiIiIiIiIiIiIiIpJESMEVERERERERERERERERERERERERE0sjifQcgIiIiIiIiIvJvUGHIStJZ2bzvMERE/mccndDqfYcgIiIiIiIiIiLyl6gCpoiIiIiIiIiIiIiIiIiIiIiIiIhIGikBU0REREREREREREREREREREREREQkjZSAKSIiIiIiIiIiIiIiIiIiIiIiIiKSRkrAFBERERERERERERERERERERERERFJIyVgioiIiIiIiIiIiIiIiIiIiIiIiIikkRIwRURERERERERERERERERERERERETSSAmYIiIiIiJp5OHhwdSpU993GO/Ey5cv6dChA87OzpiZmXH8+PG3Hiut1yUsLAwnJ6e3nu99OHfuHKVKlcLa2prChQsneUwgMDCQnj17vu8w3rs3nwszMzPWr1//3uJJyogRI8iSJcu/Nj4REREREREREREREZF/IyVgiojIf6xdu3ZRq1YtXFxcsLW1JX/+/PTp04crV64AySf2vJlc8PXXX1OqVCkcHR2xt7fHz8/PSBoJDAzEzMwsyU9gYGCKsXp4eGBmZsYPP/xgcrxnz54Jzr99+zY9e/YkV65cWFpa4u7uzieffMLly5dT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nuagb1dXVz179kx37941+Uy+ceOGkWX05bqurq7y8/OTk5OTypQpo6FDh8rNzU02NjYKCQnRnDlzdOPGDbm5uWnu3LnKkCGDXFxcUjWW1D7/a9euqUKFCipVqpTmzp2bYr358+erVq1ar93CPDmJ63ndunUmwdXSizWblrE+fPhQYWFhKWZBtbOzk7e3t/HdkytXLgUHB2vQoEGp7uOvvP+vY25unuQXEdKynXyiQYMGmQTr3rt3jyBMAAAAAAAAAACQZmTABADgL7h165YiIyM1ZMgQVaxYUblz59adO3eS1Nu/f7/x5+fPnys8PNxki20XFxe1bt1a3333naZNm/bawI1EDRs2lKWlpSZMmJBseWKApa+vr54/f66IiAiT8iNHjkiSEcyXHC8vL9na2urhw4dvHE9a2dvba+jQofryyy91//5947y5ubkaN26sJUuWJNlm9vHjx5o1a5aqVq36xsxbz58/16JFizR58mSTzI/Hjh2Tu7u7li5dalLfw8NDOXPmTDb48lVmZmby8/NL1X2ZNm2aHBwc/lLwib29vXr16qV+/fopISFBVapUUebMmd/47P8J69ev1/3793X06FGT+7x06VKtWrXKZCyWlpby9vaWl5dXssGXr0rt+rt586aWLFmiunXr/qUsew0bNpSFhYURFJyWuSXy9/eXv7+/Tp48qWbNmr31WF7HwcFBQUFBmjdvnpYtW6aVK1caW2VL0scff6wlS5aoQ4cOCgsLM84XKlRIp0+fNoKqXj4Sn0e5cuV0+vRprVixQuXLl5f0Iihzy5Yt2rNnj3EuNZYuXaq2bdtq6dKlqlmzZrJ1Dhw4YPLz/v37lStXLqVLl04BAQGKi4vTzZs3k4w3MQCvZMmS2rlzp0nw1ebNm+Xr66tMmTIpa9ascnd316VLl5K0kRgUXbhwYVlZWSkyMtJoIzY2VleuXJGnp6ckKX/+/Nq1a9dbBXlZW1srW7Zsev78uVauXKk6depIehFsnD59epN7cOfOHZ07d874+ezZs7p165bGjRunMmXKyM/Pz8hC+KqXv2cS23n5e+ZV8fHxio2NNTKAvmuJW4ufP39ehw8fNuadWoULF1b69Om1detW41xkZKSioqJeG3ieOJ+nT5+anE+fPr0++OADpUuXTmFhYapVq1aqPy9y5colGxsbk7G86urVqypfvryRQTWl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r1+vc+fOafTo0ZIeJzvWqFFDX375pVm/RYsWKTg4OMUETAsLC40fP17/+c9/MiWZ9MnncuPGDX3//fdavny5aUt06XFC6FtvvaWff/5Z9erVe+45AQAAAAAAAAAAngUJmAAAAACAFy537txydnbW/Pnz5ebmpqioKA0ePNjUPm3aNLm5uals2bKysLDQqlWr5OrqKkdHR4WGhiohIUGVK1dWzpw59c0338jGxkaFChWSs7OzWrVqpbZt22rq1KkqW7as/vjjD4WFhal06dJq2LChPD09FRcXp7CwMPn5+SlnzpzKmTNnmjHfvXtXV69e1aNHj/S///1Pa9eu1fTp09W9e3fVrl3brO+tW7d09epVs3N2dnbKlSuX6fX169d1//59PXjwQAcPHtTXX3+twMDA53yy5iIjI5Od8/X11bx589SiRQt16dJFvXr1kr29vcLCwvTxxx8rMDBQzZo1U3x8vL7++muNGjVKJUuWNBvjo48+0rRp03Ty5EmzRMgkDRs2VOXKlTVv3jy5uLikO16j0Wh6bvfu3dOWLVv0008/afjw4ZKkr7/+Ws7OzmrWrFmybd8bNGig4OBgswTMEydOyM7OzvTaYDDIz88v3fEAAAAAAAAAAABkBAmYAAAAAIAXzsLCQsuXL1efPn1UsmRJ+fj4aNasWapVq5akx8mKkyZN0rlz52RpaamKFStq48aNsrCwkKOjoyZMmKABAwYoISFBpUqV0g8//CBnZ2dJj6szjhkzRgMHDtRvv/2mPHny6M0339R7770nSapataq6deum5s2b68aNG/r88881YsSINGNesGCBFixYoOzZs8vZ2Vnly5fXihUr1Lhx42R9O3TokOzc+PHjzZJMfXx8JElWVlby8PBQ165d0xVHRrRo0SLZuStXrigwMFDbt2/X2LFjVb16dd2/f19FixbV0KFD1a9fPxkMBq1fv143btxI8f6KFy+u4sWLKzg4WNOmTUtx7okTJ6a4xXlqYmNj5ebmJunxtuCFChXSqFGjTNufh4SEqHHjxsmSLyWpSZMmatOmjf7880/TuRo1apj1sbS01KNHjzIUEwAAAAAAAAAAQHoZjEajMauDAAAAAAAAyCqxsbFycHCQX++vZGltk9XhAMBLEz65bVaHAAAAAAAAALxykv7eICYmRvb29qn2tXhJMQEAAAAAAAAAAAAAAAAA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HSs3N7d0JWEXK1ZMjx49Mvv+i4yMNH03JsmWLdszrYnUfPbZZ5oyZYp+//33TB33WQwePNhUKfBpbG1t1bdvXw0aNOi5KxCnZ75/spS+08qWLauEhARdv3492ef6yS2mO3bsqFKlSmnx4sUKCgoyqyiZ0ripSe+cz+rvvy/379+v4sWLp+va2NhYvfvuu8qePbvWr1//1KqTBoNB7u7usrGx0bJly+Th4aFy5co9U7yJiYmKj483SySdNGmSRo8erc2bNyerUPky5M2bV+3atdM333yjGTNmaP78+ZKe73cxAAAAAAAAAABARpGACQBAKr788kslJCSoUqVKWr16tc6dO6fTp09r1qxZpu1DBwwYoIULF2rOnDk6d+6cIiIi1KVLF/3111/66KOPJEkRERH64IMP9N133+nUqVM6f/68goODFRISog8++OCFxO7i4qIBAwZo1qxZZuerVKmivn376uOPP9bUqVN14cIFnTlzRp999plmzpypqVOnpitBrU+fPtq8ebOmTJmic+fOafbs2dq8ebNZn6JFi2rNmjWKiIjQsWPH9OGHHyarAubp6aldu3bpt99+059//ilJCgoK0i+//KJevXopIiJC586d0/fff69evXo951N5uoEDByosLEyjR4/W2bNntXjxYs2ePVuDBg1K9xj58uWTjY2NNm/erGvXrqVYGTUlGzZs0KxZsxQREaHLly9ryZIlSkxMlI+PT5rXenp66sCBA7p06ZL+/PNPJSYmqkePHrpy5Yp69+6tM2fO6Pvvv9fnn3+uAQMGZGj72aepU6eOSpUqpVatWunIkSM6ePCg2rZtq5o1a5ol4dSqVUtLly41JVsmJfmtWLHipSRgPnz4UJ06ddKpU6e0ceNGff755+rVq1e6n0FUVJQGDBigyMhILVu2TF988YX69u0r6XF1yuzZs+uLL77Qf//7X61fvz5ZNcauXbvqzJkzCgoK0tmzZ7Vy5UqFhoZK+r8qnun9rLdq1UrLly/XqlWrnrr9uPS4muqgQYPUv39/LV68WBcuXNCRI0f0xRdfaPHixaZ+tWrV0k8//SQrKysVK1bMdO7J9ystPj4+qlevnrp27aoDBw4oPDxcH330kWxsbMz6eXp6KiwsTFevXtVff/2VrrHTUqVKFZUuXVrjxo0zO3/79m1dvXrV7IiNjc3Q2Ddu3Eg2xv3795/a38PDQ40bN9bw4cNTHbdr1646e/asVq9e/VLme9H++OOPZFuMX7t2zdR+69atZPeVnn9w4Onpqbi4OIWFhenPP//U3bt35e3trVatWqlt27Zas2aNLl68qIMHD2r8+PH68ccfJT3+fb1v3z4tXrxYrVq1UqNGjdSqVStTRdqUxk1NeuZ8Hnv37tWkSZN09uxZffnll1q1apXp+yU1ScmXd+7cUXBwsGJjY03P98mEw8mTJ+vEiRM6efKkRo8erQkTJmjWrFnp+gcFS5cu1cqVK3X69Gn997//1cqVKzVkyBA1b97cVGlz4sSJGjZsmEJCQuTp6WmKIakK74s2fPhwff/99zp//rxOnjypDRs2mBJYn/V3MQAAAAAAAAAAwLMgARMAgFQUKVJER44cUe3atTVw4ECVLFlSdevWVVhYmObOnSvp8fbACxcuVEhIiMqXL6969erp6tWr2rVrl1xcXCQ9rmDn6empkSNHqnLlyipXrpxmzpypkSNHaujQoS8s/kGDBpltlZpkxowZmjNnjpYtW6aSJUuqQoUK2rVrl9atW6fevXuna+w333xTCxYs0MyZM+Xn56eff/5Zn332mVmfadOmKXfu3KpataoCAgLk7++frPrWqFGjdOnSJb3xxhvKmzevJKl06dLauXOnzp49q+rVq6ts2bIaPny43N3dn/FJpK1cuXJauXKlli9frpIlS2r48OEaNWqU2rdvn+4xrKysNGvWLM2bN0/u7u7pTq51dHTUmjVr9Pbbb6t48eL66quvtGzZMvn6+qZ57aBBg2RpaakSJUqYtsHOnz+/Nm7cqIMHD8rPz0/dunVTp06dkr0/z8pgMOj7779X7ty5VaNGDdWpU0dFihTRihUrzPrVrFlTCQkJqlWrlulcrVq1kp17Ud555x0VLVrUtL32+++/rxEjRqT7+rZt2+revXuqVKmSevbsqb59+6pLly6SHldeCw0N1apVq1SiRAlNmDAh2da3hQsX1nfffac1a9aodOnSmjt3rmm9J217m97PemBgoG7cuKG7d++qUaNGqcY9evRoDRs2TOPHj1fx4sVVr149/fjjjypcuLCpT/Xq1ZWYmGiWbPks782iRYvk7u6umjVr6j//+Y+6dOmSrDrn1KlTtWXLFnl4eKhs2bLpHjst/fv318KFC80qsQ4fPlxubm5mxyeffJKhcevU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",
      "text/plain": [
       "<Figure size 2000x2000 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 排序，查看前60的特征\n",
    "feat_imp_df.sort_values(by=['imp'],ascending=False, inplace=True)\n",
    "print(list(feat_imp_df[:100]['feats']))\n",
    "\n",
    "# 特征重要性可视化\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "plt.figure(figsize = [20,20])\n",
    "sns.barplot(x = feat_imp_df.iloc[:50]['imp'], y = feat_imp_df.iloc[:50]['feats'])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7ec6d3b5-bfc1-4a57-993c-4609590f37cd",
   "metadata": {},
   "source": [
    "# 3 结果提交\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "1af5c7fd-d2f4-4171-a885-5b9f648cf236",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-13T08:49:33.277404Z",
     "iopub.status.busy": "2024-11-13T08:49:33.277059Z",
     "iopub.status.idle": "2024-11-13T08:49:33.616440Z",
     "msg_id": "22607cbd-870a-4c75-ac0c-51a81c4671ff",
     "shell.execute_reply": "2024-11-13T08:49:33.615719Z",
     "shell.execute_reply.started": "2024-11-13T08:49:33.277375Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1的个数 1145\n"
     ]
    }
   ],
   "source": [
    "from datetime import datetime\n",
    "\n",
    "abst = \"复现_A_lgb\"\n",
    "feat_imp_df.to_csv('./feature/feat_{}.csv'.format(abst))\n",
    "sub_df = df_test[['CUST_NO', 'FLAG']].reset_index(drop=True)\n",
    "sub_df['FLAG'] = [1 if x >= best_t else 0 for x in prediction]\n",
    "# sub_df['target'] = prediction\n",
    "count_1 = sub_df[sub_df['FLAG']>=best_t]['FLAG'].count()\n",
    "print('1的个数', count_1)\n",
    "data_date = datetime.now().strftime('%Y%m%d')\n",
    "sub_df[['CUST_NO', 'FLAG']].to_csv('./submit/prob_{}_{:.4f}_{:.4f}_{}_{}.csv'.format(data_date, curr_f1score, F_score, count_1, abst), header=None, index=False)\n",
    "pd.DataFrame({'CUST_NO': df_train['CUST_NO'].reset_index(drop=True), \"oof\": oof, \"y\": y}).to_csv('./submit/final_oof_y_{}_{:.4f}_{:.4f}_{}_{}.csv'.format(data_date, curr_f1score, F_score, count_1, abst), index=False)\n",
    "pd.DataFrame({'CUST_NO': df_test['CUST_NO'].reset_index(drop=True), \"prediction\": prediction}).to_csv('./submit/final_prediction_{}_{:.4f}_{:.4f}_{}_{}.csv'.format(data_date, curr_f1score, F_score, count_1, abst), index=False)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
